>>>>> "Y" == Yukihiro Matsumoto <matz / ruby-lang.org> writes: Y> We have two problems, one that crash, and the other that block. The Y> former is not related at all with pthread. It's a bug in Ruby. Y> I think it's fixed by the following patch. The bug I'm suspecting to Y> be LinuxThread bug is the latter. Well, the backtrace when it block (I send it ^C when it don't display keys) Program received signal SIGINT, Interrupt. 0x42075047 in malloc_consolidate () from /lib/i686/libc.so.6 (gdb) bt #0 0x42075047 in malloc_consolidate () from /lib/i686/libc.so.6 #1 0x420746b7 in _int_malloc () from /lib/i686/libc.so.6 #2 0x42073d81 in malloc () from /lib/i686/libc.so.6 #3 0x4027f3df in TclpAlloc () from /usr/lib/libtcl.so.0 #4 0x40283ff6 in Tcl_Alloc () from /usr/lib/libtcl.so.0 #5 0x402b840e in TclExpandTokenArray () from /usr/lib/libtcl.so.0 #6 0x402b8399 in ParseTokens () from /usr/lib/libtcl.so.0 #7 0x402b7e7e in Tcl_ParseCommand () from /usr/lib/libtcl.so.0 #8 0x402b8d56 in Tcl_EvalEx () from /usr/lib/libtcl.so.0 #9 0x402b9185 in Tcl_Eval () from /usr/lib/libtcl.so.0 #10 0x40282813 in Tcl_GlobalEval () from /usr/lib/libtcl.so.0 #11 0x401cdb78 in Tk_BindEvent () from /usr/lib/libtk.so.0 #12 0x401d2525 in TkBindEventProc () from /usr/lib/libtk.so.0 #13 0x401d7d02 in Tk_HandleEvent () from /usr/lib/libtk.so.0 #14 0x401d82c8 in WindowEventProc () from /usr/lib/libtk.so.0 #15 0x402b6355 in Tcl_ServiceEvent () from /usr/lib/libtcl.so.0 #16 0x402b6583 in Tcl_DoOneEvent () from /usr/lib/libtcl.so.0 #17 0x400169f0 in lib_eventloop_core (check_root=1, check_var=0x0) at tcltklib.c:426 #18 0x40016cf1 in lib_eventloop_main (check_rootwidget=2) at tcltklib.c:520 #19 0x0805a60d in rb_ensure (b_proc=0x40016cc4 <lib_eventloop_main>, data1=2, e_proc=0x40016d04 <lib_eventloop_ensure>, data2=0) at eval.c:4717 #20 0x40016e79 in lib_eventloop_launcher (check_rootwidget=2) at tcltklib.c:555 #21 0x40016edc in lib_mainloop (argc=1, argv=0xbfffec20, self=1075273536) at tcltklib.c:576 #22 0x080653f7 in call_cfunc (func=0x40016e9c <lib_mainloop>, recv=1075273536, len=128, argc=1, argv=0x826ca70) at eval.c:4929 #23 0x0805af55 in rb_call0 (klass=1075273296, recv=1075273536, id=10353, oid=2, argc=1, argv=0xbfffec20, body=0x40175e3c, nosuper=0) at eval.c:5066 #24 0x0805b73d in rb_call (klass=1075273296, recv=1075273536, mid=10353, argc=1, argv=0xbfffec20, scope=0) at eval.c:5287 #25 0x08056e81 in rb_eval (self=1075264456, n=0x2) at eval.c:3078 #26 0x0805b23e in rb_call0 (klass=1075270816, recv=1075264456, id=10353, oid=2, argc=0, argv=0x0, body=0x4007f670, nosuper=0) at eval.c:5194 #27 0x0805b73d in rb_call (klass=1075270816, recv=1075264456, mid=10353, argc=0, argv=0x0, scope=0) at eval.c:5287 #28 0x08056e81 in rb_eval (self=1074436664, n=0x2) at eval.c:3078 #29 0x0805385c in ruby_exec () at eval.c:1436 #30 0x0805389d in ruby_run () at eval.c:1457 #31 0x08051d79 in main () at main.c:50 #32 0x420158f7 in __libc_start_main () from /lib/i686/libc.so.6 (gdb) Guy Decoux