Hi Eric,

Thank you for replying.

I tried and reproduced this on
- Ubuntu Linux on Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz (4cores / 8threads)
- CentOS Linux on Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (1cores /
2threads; a VM)
Unfortunately I don't have a Linux machine with AMD or other vendors'.

As for additional gdb outputs, I have a dumped core file of the
stopped process, and I tried printing the instructed.
But I couldn't get "vm" variable like
~~~
(gdb) print vm
No symbol "vm" in current context.
~~~
Could you give me a bit detailed way to get the output? I'm sorry I'm
not familiar with gdb.

The t0 dummy thread is used so that the process is not killed by
deadlock detection and I can get the core-dump.
Without the thread, the process is killed as deadlock.
The output of the case is the below. I suppose deadlock detection is
working as expected.
(Line 45 is t1.join in this case)

~~~
Traceback (most recent call last):
        1: from readpartial_and_eof_test.rb:45:in `<main>'
readpartial_and_eof_test.rb:45:in `join': No live threads left.
Deadlock? (fatal)
2 threads, 2 sleeps current:0x00007f8c498cfc20 main thread:0x00007f8c49566470
* #<Thread:0x00007f8c49598c60 sleep_forever>
   rb_thread_t:0x00007f8c49566470 native:0x00007f8c47674740 int:0
   readpartial_and_eof_test.rb:45:in `join'
   readpartial_and_eof_test.rb:45:in `<main>'
* #<Thread:0x00007f8c4988ce80 / readpartial_and_eof_test.rb:11 sleep_forever>
   rb_thread_t:0x00007f8c498cfc20 native:0x00007f8c3f908700 int:0
    depended by: tb_thread_id:0x00007f8c49566470
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/monitor.rb:185:in `lock'
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/monitor.rb:185:in
`mon_enter'
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/monitor.rb:224:in
`mon_synchronize'
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/logger.rb:688:in `write'
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/logger.rb:471:in `add'
   /home/hirura/.rbenv/versions/2.5.1/lib/ruby/2.5.0/logger.rb:493:in `debug'
   readpartial_and_eof_test.rb:16:in `block (2 levels) in <main>'
   readpartial_and_eof_test.rb:12:in `loop'
   readpartial_and_eof_test.rb:12:in `block in <main>'
~~~

Thanks,

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>