Project

General

Profile

Bug #10076

Updated by nobu (Nobuyoshi Nakada) almost 10 years ago

~~~ruby 
 require 'thread' 

                                                                  
                                                                                 
 m = Mutex.new 

                                                                     
                                                                                 
 Thread.abort_on_exception = true 
                                                  
 Thread.new { 
                                                                        
   loop { 
                                                                              
     m.synchronize { 
                                                                     
       puts 'got mutex in thread' 
                                                        
       sleep 0.1 
                                                                       
     } 
                                                                               
   } 
                                                                               
 } 

                                                                                 
                                                                                 
 loop { 
                                                                              
   m.synchronize { 
                                                                     
     puts 'got mutex in loop' 
                                                          
     sleep 1 
                                                                         
   } 
                                                                                 
   # Without sleep, the thread above has no chance of getting the mutex. 
             
   #sleep 0.1 
                                                                      
 } 
 ~~~ 

Back