Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. # frozen_string_literal: true
  2.  
  3. def print_threads
  4. puts '>> print_threads'
  5. Thread.list.each do |thread|
  6. p thread
  7. puts "Thread TID-#{(thread.object_id ^ ::Process.pid).to_s(36)} #{thread['label']}"
  8. if thread.backtrace
  9. puts thread.backtrace.join("\n")
  10. else
  11. puts "<no backtrace available>"
  12. end
  13. end
  14. end
  15.  
  16. def handle_signal(sig)
  17. case sig
  18. when 'TTIN'
  19. print_threads
  20. end
  21. end
  22.  
  23. %w(TTIN).each do |sig|
  24. begin
  25. trap sig do
  26. puts "Signal #{sig}"
  27. handle_signal(sig)
  28. end
  29. rescue ArgumentError
  30. puts "Signal #{sig} not supported"
  31. end
  32. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement