2016-11-07 9 views
0

私はsys_wait4に(それはwait()またはwaitpid()への呼び出しを介して到達された)我々はその構造体のタスクに保存されている特別なキューに現在のプロセスを挿入することを参照してください。私はかどうかを確認したいのであればwait()またはwaitpid()の呼び出しによってプロセスが待機しているかどうかを確認する方法は?

DECLARE_WAITQUEUE(wait, current);  
add_wait_queue(&current->wait_chldexit,&wait); 

wait()またはwaitpid()への呼び出しのために、特定のプロセスが待機しています。それが独自の(???)wait_chldexitキューにあるかどうかを確認する必要がありますか?

したがって、プロセス自体を独自のwait_chldexitキューに挿入することはできますか?

私はそれを正しくしましたか?

これはLinuxカーネル2.4です。

答えて

1

はい、waitqueue current->wait_chldexitには、現在のプロセス用の単一の要素または非要素用の要素のいずれかが含まれている可能性があります。

waitqueueが与えられても、誰も目を覚ますことはありません。代わりに、待機は子スレッドから発生した信号によって中断されます。

一部のスレッドでこのwaitqueueをチェックすると、スレッドがwait()またはwaitpid()コールでブロックされているかどうかを検出できます。

関連する問題