Thread.critical を使うスクリプトを Tracer でトレースすると予期しない動
作になります。以下のように変更すると正しくなるようです。


						福本 淳
						fukumoto / imasy.or.jp


Index: tracer.rb
===================================================================
RCS file: /src/ruby/lib/tracer.rb,v
retrieving revision 1.12
diff -u -r1.12 tracer.rb
--- tracer.rb	7 Nov 2002 19:18:14 -0000	1.12
+++ tracer.rb	17 Mar 2003 13:01:33 -0000
@@ -119,6 +119,7 @@
       return unless p.call event, file, line, id, binding, klass
     end
     
+    saved_crit = Thread.critical
     Thread.critical = true
     stdout.printf("#%d:%s:%d:%s:%s: %s",
       get_thread_no,
@@ -127,7 +128,7 @@
       klass || '',
       EVENT_SYMBOL[event],
       get_line(file, line))
-    Thread.critical = false
+    Thread.critical = saved_crit
   end
 
   Single = new