nlib
|
nlib_once()
のサンプルです。pthreadのpthread_onceに相当します。
nlib_once()
は初期化コードが高々1回しか実行されないようにすることに利用されます。 サンプルでは複数立ち上がったスレッドがいずれもnlib_once
経由でOnceFunc
を呼び出そうとしますが、実際に実行するのは最初に到達したスレッドのみです。
他のスレッドはnlib_onceflag
の実行中はスピンして待ち、実行完了後にnlib_once
以降の処理を実行します。 つまり、nlib_once
の実行後にはOnceFunc
が必ず1回だけ呼び出されていることが保証されています。
© Nintendo Co., Ltd. All rights reserved.