Issue #7505 has been updated by kosaki (Motohiro KOSAKI).


> ??ªã?®ã?§ã??mutex??????????????¾ã?§å????¤ã???????«ä¿®æ­£ã???????¹é???????¼ã??????????¨æ???????¾ã?????

????????¯å??人ç????«ã?¯è??????????¾ã??????????¥ã????±ã???????«ã??????????¨ã?????æ¡??????¾ã?????
----------------------------------------
Feature #7505: Mutex#owned? ??¡ã?½ã???????®æ?°è¨­
https://bugs.ruby-lang.org/issues/7505#change-34370

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: next minor


以ä????®ã???????ªã????­ã?°ã?©ã??????????£ã????¨ã????¾ã?????

Thread.async_interrupt_timing(Object => :on_blocking) {
  begin
??????mutex = Mutex.new
    mutex.synchronize {
       sleep 1
       condvar.wait mutex
  ???}
  ensure
    ??ªã?½ã?¼ã?¹è§£??¾ã????????
  end
}

mutex.synchronize??®ä¸­???Ctrl-c?????¼ã???????¨ã???????²ã??è¾¼ã?¾ã???????½æ?§ã?®ã?????ç®???????ä¸???¶æ??????????¾ã??

1) sleep
2) mutex.sleep?????®ä¸­???native_sleepï¼?condvar.signal å¾???¡ï??
3) mutex.sleep?????®ä¸­???rb_mutex_lock(condvar.signal??§èµ·åº????????????????mutex?????¥ã?¹ã?¬ã????????使ç?¨ä¸­?????£ã????????mutexå¾???¡ï??

?????®ã?¨ã?????ï¼???¨ï?????mutex????????£ã????¾ã??ensure??«å?¥ã????¾ã????????ï¼????mutex???????????????ensure??«å?¥ã?£ã?¦ã????¾ã?????????????«æ?ªã???????¨ã?«ï????¨ï?????Ruby????????¯å???????¡ã?½ã??????????«ã??????????????ruby??¬ã????«ã?? workaround????????????????????¨ã????§ã????¾ã????????

??ªã?½ã?¼ã?¹ã??æ­£ã????£æ?¾ã????????段ã???????ªã???????¨ã???????®ã?¯å????§ã???????®ã?§ã??Mutex#owned? ??¡ã?½ã???????®æ?°è¨­??????æ¡??????¾ã??????????????Mutex#locked? ??¨ã?¯ç?°ã?ªã????ªå???????­ã????¯ã???????£ã?¦ã???????¨ã????®ã??true???è¿??????¾ã??

???????????¥Ã轡¦èº?

https://gist.github.com/4195632

以ä??ä½?è«????POSIX?????¨ã??pthread_cond_wait??¯ã?­ã?£ã?³ã?»ã?¬ã?¼ã?·ã?§ã?³ã????¤ã?³ã????§ã?¯ã?ªã??????????ªã?«ã?????????????¨ã??Mutex???lock???çµ?????£ã?¦ã???????¢æ?°ã??????????¦ã??????®ã?§ã????????????????¯ã???????¾ã????????????????«æ??????????¨ã???????????????????®ã?§ã??????????????????????¨å?¥ã?¹ã?¬ã??????????­ã????¯ã???????£ã????¾ã?¾ã?§ã????????Ctrl-C?????¹ã????ªã???ªã????®ã??akr????????®å¥½??¿ã?«ã?¯ã??????ªã???????????




-- 
http://bugs.ruby-lang.org/