# porter/libsrc/porter/thread/potrConnectThread.h

# 1 ファイル

## 1.1 porter/libsrc/porter/thread/potrConnectThread.h

TCP 接続管理スレッドの内部ヘッダー。

SENDER: TCP connect / 自動再接続ループを管理するスレッドです。
RECEIVER: TCP accept ループを管理するスレッドです。
接続確立後、送受信・ヘルスチェックスレッドを起動します。

### 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 potr_connect_thread_start

    int potr_connect_thread_start ( struct PotrContext_ *ctx )

TCP 接続管理スレッドを起動します。

TCP 接続管理スレッドを起動します。

呼び出し前提:

- SENDER: dst_addr_resolved[i] および dst_port が設定済みであること (n_path 分)。
- RECEIVER: tcp_listen_sock[i] が listen 状態であること (n_path 分)。
- tcp_state_mutex / tcp_state_cv / tcp_send_mutex[] が初期化済みであること。

### 2.1.1 引数

- ctx [in,out] セッションコンテキストへのポインタ。
- ctx [in,out] セッションコンテキストへのポインタ。

### 2.1.2 戻り値

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

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

## 2.2 potr_connect_thread_stop

    void potr_connect_thread_stop ( struct PotrContext_ *ctx )

TCP 接続管理スレッドを停止します。

1. connect_thread_running[i] フラグを全 path クリアして停止を通知する。
2. tcp_state_cv をブロードキャストして reconnect sleep を中断する。
3. tcp_listen_sock[i] (RECEIVER) を全 path クローズして accept ブロックを解除する。
4. tcp_conn_fd[i] を全 path クローズして recv ループをブロック解除する。
5. connect_thread[i] の終了を全 path 待機する。
6. 送信スレッドを停止する (全 path join 後)。 依存スレッド (recv/health) のクリーンアップは各 connect_thread 内で行われる。

### 2.2.1 引数

- ctx [in,out] セッションコンテキストへのポインタ。
- ctx [in,out] セッションコンテキストへのポインタ。