OS_UnlockMutex

構文

#include <nitro/os.h>

void OS_UnlockMutex( OSMutex* mutex );

引数

mutex OSMutex 構造体へのポインタ

返り値

なし。

説明

呼び出したスレッドはmutex を解放します。
呼び出したスレッドは、mutex の所有者でなければなりません。

ただし、呼び出したスレッドがこの mutex を n 回ロックしていた場合、n 番目の OS_UnlockMutex() でのみ実際にmutex を解放します。

(例)

OSMutex mutex;

OS_LockMutex( &mutex );
   :
OS_LockMutex( &mutex );
   :
   :
   :
OS_UnlockMutex( &mutex ); // まだ mutex は解放されない
   :
OS_UnlockMutex( &mutex ); // ここで mutex は解放される。

mutex をロックしているスレッドが OS_ExitThread() によって終了したときは、そのmutex は自動的にアンロックされます。

参照

OS_InitMutex, OS_LockMutex, OS_TryLockMutex, OS_ExitThread

履歴

2009/03/11 OS_UnlockMutex() とすべきなのに OS_LockMutex() と書いていた箇所を修正
2008/12/17 例を追加
2004/04/05 OS_ExitThread() によってmutexがアンロックされる記述を追加
2003/12/01 初版