マルチスレッドのプログラミング

cond_init(3T)


#include <thread.h>

int cond_init(cond_t *cv, int type, int arg);

cond_init は、cv が指す条件変数を初期化します。type には、次のいずれかを指定できます (arg は現在は無視されます)。(POSIX スレッドについては、「pthread_condattr_init(3T)」を参照)。

0 に初期化されたメモリーに領域を確保することによって、条件変数を初期化することもできます。その場合は、typeUSYNC_THREAD を指定したものと仮定されます。

複数のスレッドから、同じ条件変数を同時に初期化してはいけません。一度初期化した条件変数は他のスレッドが使用している可能性があるので、再初期化してはいけません。

プロセス内スコープでの条件変数


#include <thread.h>

cond_t cv;
int ret;

/* このプロセスの中だけで使用する */
ret = cond_init(cv, USYNC_THREAD, 0); 

プロセス間スコープでの条件変数


#include <thread.h>

cond_t cv;
int ret;

/* すべてのプロセスの間で使用する */
ret = cond_init(&cv, USYNC_PROCESS, 0);