連投ですみません。
ifのthen節内にブレークポイントを設定して、trueだったのでthen節でブレークしてからaがfalseに変化した感じですが、おかしいですよね。
Proc2のreleaseの前の行でa=falseしています。この部分はfinally節で記述してます。
a=trueはacquireの次の行です。