# porter/libsrc/porter/thread/potrHealthThread.c

# 1 ファイル

## 1.1 porter/libsrc/porter/thread/potrHealthThread.c

ヘルスチェックスレッドモジュール。

送信者側で動作する定周期 PING 送信スレッドです。
health_interval_ms 周期で PING パケットを送信します。
受信者側から送信者へのヘルスチェックは行いません (一方向ヘルスチェック)。

### 1.1.1 作者

c-modernization-kit sample team

### 1.1.2 バージョン

1.0.0

### 1.1.3 日付

2026/03/08

### 1.1.4 著作権

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

# 2 関数

## 2.1 health_sleep

    static void health_sleep ( struct PotrContext_ *ctx, int path_idx, uint32_t interval_ms )

## 2.2 health_get_ms

    static uint64_t health_get_ms ( void )

## 2.3 health_thread_func

    static void *health_thread_func ( void *arg )

## 2.4 tcp_health_thread_func

    static void *tcp_health_thread_func ( void *arg )

## 2.5 potr_health_thread_start

    int potr_health_thread_start ( struct PotrContext_ *ctx )

非 TCP ヘルスチェックスレッドを起動します。

ctx->global.health_interval_ms が 0 の場合は起動しません (POTR_SUCCESS を返します)。

### 2.5.1 引数

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

### 2.5.2 戻り値

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

## 2.6 potr_health_thread_stop

    int potr_health_thread_stop ( struct PotrContext_ *ctx )

非 TCP ヘルスチェックスレッドを停止します。

### 2.6.1 引数

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

### 2.6.2 戻り値

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

## 2.7 potr_tcp_health_thread_start

    int potr_tcp_health_thread_start ( struct PotrContext_ *ctx, int path_idx )

TCP ヘルスチェックスレッドを path ごとに起動します。

ctx->global.health_interval_ms が 0 の場合は起動しません (POTR_SUCCESS を返します)。

### 2.7.1 引数

- ctx [in,out] セッションコンテキストへのポインタ。
- path_idx [in] パスインデックス (0 ～ n_path-1)。

### 2.7.2 戻り値

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

## 2.8 potr_tcp_health_thread_stop

    int potr_tcp_health_thread_stop ( struct PotrContext_ *ctx, int path_idx )

TCP ヘルスチェックスレッドを停止します。

### 2.8.1 引数

- ctx [in,out] セッションコンテキストへのポインタ。
- path_idx [in] パスインデックス (0 ～ n_path-1)。

### 2.8.2 戻り値

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

# 3 変数

## 3.1 s_health_args

    static HealthArg[POTR_MAX_PATH] s_health_args;

# 4 定数、マクロ

## 4.1 POTR_MUTEX_LOCK_LOCAL

    #define POTR_MUTEX_LOCK_LOCAL ( m )
        pthread_mutex_lock(m)

## 4.2 POTR_MUTEX_UNLOCK_LOCAL

    #define POTR_MUTEX_UNLOCK_LOCAL ( m )
        pthread_mutex_unlock(m)

# 5 クラス/構造体

## 5.1 HealthArg

    struct HealthArg {
        struct PotrContext_ *ctx;
        int path_idx;
        int _pad;
    }

### 5.1.1 属性

#### 5.1.1.1 ctx

    struct PotrContext_ *ctx;

#### 5.1.1.2 path_idx

    int path_idx;

#### 5.1.1.3 _pad

    int _pad;