>>>>> "Y" == Yukihiro Matsumoto <matz / ruby-lang.org> writes:

Y> Currently I suspect this is caused by LinuxThread bug.  I tried hard

 I'm probably wrong, but I don't think it's related to pthread.

 The example given can crash with svg and Tk/Tcl is not compiled with
 pthread 

svg% ldd /usr/lib/libtk.so
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400c3000)
        libdl.so.2 => /lib/libdl.so.2 (0x401a2000)
        libm.so.6 => /lib/i686/libm.so.6 (0x401a5000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        libtcl.so.0 => /usr/lib/libtcl.so.0 (0x401c7000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
svg% 

svg% ldd /usr/lib/libtcl.so
        libdl.so.2 => /lib/libdl.so.2 (0x40095000)
        libm.so.6 => /lib/i686/libm.so.6 (0x40099000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
svg% 

Y> to solve Nathaniel Talbott's problem, which must be caused by the
Y> same reason, but I couldn't make complete success.

 Well, the latest patch at least make it work on Solaris-32 (previously it
 blocked very quickly)

nasun% ps ax | grep ruby
 17326 ?        O 1501:43 ruby s.rb
 22284 ?        O 246:26 ruby c.rb
 22287 ?        S 126:48 ruby c.rb
 22327 pts/20   S  0:00 grep ruby
nasun%
 
nasun% pstack 17326
17326:  ruby s.rb
-----------------  lwp# 1 / thread# 1  --------------------
 ff29f6e0 __setcontext (ffbd70f0, ffbd7948, 4, 28dda0, ffbd7b30, ffbd7b60) + 10
 0001f0e8 rb_eval  (292918, cc800, ffffffff, 3, ca000, d4780) + 108c
 000247e4 rb_call0 (1b5c28, 292918, 3f69, ffbd7914, 0, ffbd7c6c) + 474
[...]
 0001fa50 rb_eval  (106358, cc800, be064, 0, ca000, ca000) + 19f4
 0001bae8 ruby_exec (0, ffbefa84, 0, be034, be064, 0) + a0
 0001bb40 ruby_run (2, ffbefa84, 0, 0, 0, 0) + 20
 00019b48 main     (2, ffbefa84, ffbefa90, ccbfc, 0, 0) + 18
 000199c8 _start   (0, 0, 0, 0, 0, 0) + 5c
-----------------  lwp# 2 / thread# 2  --------------------
 ff29edc0 signotifywait ()
 ff18e950 _dynamiclwps (ff1ac000, 0, 0, 0, 0, 0) + 1c
 ff191c2c thr_yield (0, 0, 0, 0, 0, 0) + 8c
-----------------  lwp# 3  --------------------------------
 ff29c964 door     (0, 0, 0, 0, ff175d38, 4)
 ff1967c8 _sc_door_func (0, 0, 0, 0, 0, 0) + 54
-----------------  lwp# 4 / thread# 4  --------------------
 ff29bde0 nanosleep (fee0bd20, fee0bd18)
 ff19a440 __nanosleep (0, ff0a3d38, 1, ff1b8d04, 0, 2) + 34
 ff19b01c _thread_start (0, 0, 0, 0, 0, 0) + 40
--------------------------  thread# 3  --------------------
 ff18d9b8 _reap_wait (ff1b0980, 1e924, 0, ff1ac000, 0, 0) + 38
 ff18d710 _reaper  (ff1ace00, ff1b2708, ff1b0980, ff1acdd8, 1, fe400000) + 38
 ff19b01c _thread_start (0, 0, 0, 0, 0, 0) + 40
nasun% 



Guy Decoux