このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 2.6.0 リファレンスマニュアル

instance method Monitor#exit

exit -> ()[permalink][rdoc]

MonitorMixin#mon_exit の別名です。

enter でロックした回数だけ exit を呼ばなければモニターは解放されません。

モニターが解放されればモニターのロック待ちになっていたスレッドが一つ実行を再開します。

[EXCEPTION] ThreadError:
ロックを持っていないスレッドが呼びだした場合に発生します
require 'monitor'
mon = Monitor.new
mon.enter
mon.enter
mon.exit
mon.exit
mon.exit # => current thread not owner (ThreadError)