nlib
|
データの送り手側のスレッドと受け手側のスレッドがそれぞれ1つずつの場合、このクラスを用いてロックフリーにデータの受け渡しを行うことができます。 [詳解]
#include "nn/nlib/LockFree.h"
公開メンバ関数 | |
size_t | GetBufferSize () noexcept |
バッファ・サイズを返します。スレッドセーフです。 | |
errno_t | Read (void *dest, size_t nbytes) noexcept |
データをパイプから読み込みます。スレッドセーフです。 [詳解] | |
errno_t | Write (const void *src, size_t nbytes) noexcept |
データをパイプに書き込みます。スレッドセーフです。 [詳解] | |
コンストラクタ、デストラクタ、及び初期化 | |
LockFreePipe () noexcept | |
デフォルトコンストラクタです。 | |
データの送り手側のスレッドと受け手側のスレッドがそれぞれ1つずつの場合、このクラスを用いてロックフリーにデータの受け渡しを行うことができます。
N | バッファ・サイズです。2のべき乗である必要があります。 |
LockFreePipe
を2つ使うことで2つのスレッド間でデータの送受信を行うことができます。 LockFree.h の 351 行目に定義があります。
|
inlinenoexcept |
データをパイプから読み込みます。スレッドセーフです。
[out] | dest | 読み込んだデータが格納される領域 |
[in] | nbytes | 読み込むバイト数 |
0 | 成功した場合 |
EAGAIN | バッファにnbytes 未満のデータしかない場合 |
LockFree.h の 360 行目に定義があります。
|
inlinenoexcept |
データをパイプに書き込みます。スレッドセーフです。
[in] | src | 書きこむデータが格納される領域 |
[in] | nbytes | 書き込むバイト数 |
0 | 成功した場合 |
EAGAIN | バッファの空き容量がnbytes 未満の場合 |
LockFree.h の 383 行目に定義があります。
© Nintendo Co., Ltd. All rights reserved.