Project

General

Profile

Bug #13768

Updated by nobu (Nobuyoshi Nakada) over 6 years ago

 けいじゅ@いしつかです. 
 
  下記のプログラムを実行するとThreadがデッドロックしたと例外が発生します. 
  # コメント部分をはずせば, デッドロックはしません 
 
  シグナルのtrapが絡むときのデッドロックの検知に問題があるのではないかと 
  思いますがいかがでしょう?  

  ``` 
   
 
  % ruby -v 
  ruby 2.5.0dev (2017-07-25 trunk 59417) [i686-linux] 
  ``` 
  ```ruby 
  
 
  --  
  q = Queue.new 
  p = Queue.new 
 
  trap(:SIGCHLD) do 
    
  puts "SIGCHLD" 
    
  q.push 1 
  end 
 
  Thread.start do 
    
  Process.spawn("/bin/sleep 1") 
  end 
 
  #Thread.start do 
  #    loop do 
  #      sleep 100 
  #    end 
  #end 
 
  th = Thread.start{ 
    
  p.push q.pop 
  } 
 
  p.pop 
  ``` 
  
 
  __ 
  ---------------------------------------------------->> 石塚 圭樹 <<--- 
  ---------------------------------->> e-mail: keiju@ishitsuka.com <<---

Back