# porter/libsrc/porter/api/potrDisconnectPeer.c

# 1 ファイル

## 1.1 porter/libsrc/porter/api/potrDisconnectPeer.c

potrDisconnectPeer 関数の実装。

### 1.1.1 作者

c-modernization-kit sample team

### 1.1.2 バージョン

1.0.0

### 1.1.3 日付

2026/03/23

### 1.1.4 著作権

Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

# 2 関数

## 2.1 potrDisconnectPeer

    POTR_EXPORT int POTR_API potrDisconnectPeer ( PotrHandle handle, PotrPeerId peer_id )

指定ピアを切断します (N:1 モード専用)。

指定したピアへ FIN パケットを送信し、ピアのリソースを解放します。
切断完了後に POTR_EVENT_DISCONNECTED コールバックが発火します。
N:1 モード (unicast_bidir かつ src 情報省略) 専用です。
1:1 モードおよびその他の通信種別では POTR_ERROR を返します。

### 2.1.1 引数

- handle [in] potrOpenService() で取得したセッションハンドル。
- peer_id [in] 切断するピアの識別子 (POTR_PEER_NA および POTR_PEER_ALL 以外)。

### 2.1.2 戻り値

成功時は POTR_SUCCESS、失敗時は POTR_ERROR を返します。

### 2.1.3 警告

handle が NULL の場合は失敗を返します。
peer_id = POTR_PEER_NA または POTR_PEER_ALL の場合は失敗を返します。
指定した peer_id が存在しない場合は失敗を返します。
1:1 モードまたは N:1 モード以外で呼び出した場合は失敗を返します。

### 2.1.4 スレッド セーフティ

本関数はスレッドセーフです。
内部で peers_mutex により排他制御されるため、複数スレッドから並行して呼び出せます。
ただし PotrRecvCallback の内部から本関数を呼び出すとデッドロックが発生します。
コールバック内からの呼び出しは避けてください。

# 3 定数、マクロ

## 3.1 POTR_MUTEX_LOCK_LOCAL

    #define POTR_MUTEX_LOCK_LOCAL ( m )
        pthread_mutex_lock(m)

## 3.2 POTR_MUTEX_UNLOCK_LOCAL

    #define POTR_MUTEX_UNLOCK_LOCAL ( m )
        pthread_mutex_unlock(m)

# 4 型

## 4.1 PotrMutexLocal

    typedef pthread_mutex_t PotrMutexLocal;