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] セッションコンテキストへのポインタ。