(rontolisp) docs
← 関数

rontolisp:mutex-release

(rontolisp:mutex-release mutex)

mutex の獲得を 1 回分解放し、その mutex を返します。呼び出しスレッドが保持していない mutex を解放することは、インタプリタと JVM バックエンドではエラーです(WASM では プリミティブが no-op なので何も起きません)。ロックは再入可能なので、2 回獲得したスレッドは 別のスレッドが獲得できるようになる前に 2 回解放する必要があります。

rontolisp:with-mutex は非局所脱出も含めて獲得と 解放を対にしてくれます。素のプリミティブを使うのは、その 2 つを 1 つのレキシカルブロックに 収められない場合だけにしてください。

制限

  • mutex ハンドルでない値はエラーです。
  • WASM バックエンドでは何も検査されません。保持していないロックの解放は黙って受理されます。