I checked the VTE API documentation.

In version 0.26 (or even earlier?), the function "vte_pty_child_setup()" 
appears. It's documented as "FIXMEchpe", but the documentation for 
vte_pty_new() says "you MUST call it before using fork or spawn with this 
terminal". No such remark for vte_pty_new_foreign(), used by Scope, but given 
that we indirectly (via gdb) connect the terminal to a spawned program, maybe 
vte_pty_child_setup() will help?..

Starting with 0.38, vte_pty_new_foreign() has been renamed to 
vte_pty_new_foreign_sync(), which sounds disturbing. A sync read from the pty 
is very likely to block, which is exactly what we see. Maybe we should 
explicitly set the master to non-blocking I/O, before / after / instead of 
vte_pty_child_setup()?..

Last and least, there may be a bug in VTE, or it may be simply impossible to 
use it for the program spawned by gdb any more. How about describing the 
situation to the VTE devs?


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/433#issuecomment-290177194

Reply via email to