# 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 初版