The executable example does not freeze for me either. What freezes is the Ruby script main.rb. It should be doing the same thing as example far as I can tell, in particular it does not start the root event loop. That this is the case I have checked by opening a TBrowser: While the window opens it is frozen immediately, in fact is not even drawn once completely. This is different from PyRoot if I remember correctly.
I have tried debugging the interpreter, but I have little experience with that. At the point where the program freezes I pressed ^C to get back to gdb:
Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb7cd5b60 (LWP 19447)]
0xffffe410 in __kernel_vsyscall ()
(gdb) l
36 main.c: No such file or directory.
in main.c
With strace I checked the last few lines before the freeze:
poll([{fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=16, events=POLLIN}, {fd=15, events=POLLIN, revents=POLLIN}], 4, 24583) = 1
clock_gettime(CLOCK_MONOTONIC, {1095647, 274828631}) = 0
ioctl(15, FIONREAD, [32]) = 0
read(15, "\2\27L\5*@NAV\0\0\0\27\0`\2\0\0\0\0\276\4\4\3!\0\16\0\0"..., 32) = 32
futex(0x9651018, 0x80 /* FUTEX_??? */, 2
It is then stuck at the end of the futex( line. When waiting for my input it was at “poll(”
With 5.16.00 where the crash has gone away, there is no futex line:
poll([{fd=7, events=POLLIN}, {fd=10, events=POLLIN}, {fd=15, events=POLLIN}, {fd=14, events=POLLIN, revents=POLLIN}], 4, 17525) = 1
clock_gettime(CLOCK_MONOTONIC, {1097087, 649767544}) = 0
ioctl(14, FIONREAD, [32]) = 0
read(14, "\34[\24\7V\0\0\0C\1\0\0\241:dA\0\30 \10 [\304\277H[\304"..., 32) = 32
ioctl(14, FIONREAD, [0]) = 0
clock_gettime(CLOCK_MONOTONIC, {1097087, 650202166}) = 0
ioctl(14, FIONREAD, [0]) = 0
poll(
I just checked that 5.14 does not work either.
Thanks
Jan