tcl の vwait のように、C プログラミングで変数がリセットまたは変更されるまでコードを待機する方法はありますか?
同じことを実装できるサンプルコード:
ここでスレッドを使用して、変数 getout を 1 に設定し、さらに先に進むことができます。注: コードにいくつかの問題があるため、変数をチェックし続けるために無限 while ループを使用することはできません。同じタスクの何らかのトリガーはありますか? 前もって感謝します。
#include <stdio.h>
#include <pthread.h>
int getout = 0;
void *threadfunc(void *parm)
{
int x = 0;
for (;;) {
x++;
if (x == 500000) {
getout = 1;
}
}
return NULL;
}
void main () {
pthread_t pth;
pthread_create(&pth,NULL,threadfunc,"foo");
// wait for getout to be set to 1;
pthread_cancel(pth); // cancel the thread after wait
}