|
From: Daniel J S. <dan...@ie...> - 2014-11-16 02:32:51
|
On 11/15/2014 07:31 PM, sfeam wrote:
> On Saturday, 15 November 2014 07:18:36 PM Daniel J Sebald wrote:
>
>>
>
>> When the hang happens on your system, is the their a daemon in the
>
>> process list or is the gnuplot process active and consuming CPU?
I meant "zombie", not daemon.
> I see the same as shown by the trace that Allin posted.
>
> The main process is gone, and the child process is in a
>
> poll() somewhere in a wxt library routine that bizarrely
>
> seems (from its name) to have something to do with audio.
>
> #0 0x00007fc0e243e30d in poll () from /lib64/libc.so.6
>
> #1 0x00007fc0e6715434 in g_main_context_iterate.isra.24 () from
> /lib64/libglib-2.0.so.0
>
> #2 0x00007fc0e671589a in g_main_loop_run () from /lib64/libglib-2.0.so.0
>
> #3 0x00007fc0e53ed2e9 in initable_init () from /lib64/libgio-2.0.so.0
>
> #4 0x00007fc0e537c54a in g_initable_new_valist () from
> /lib64/libgio-2.0.so.0
>
> #5 0x00007fc0e537c62c in g_initable_new () from /lib64/libgio-2.0.so.0
>
> #6 0x00007fc0d44e4bbd in
> gvfs_remote_volume_monitor_proxy_new_for_bus_sync ()
>
> from /usr/lib64/gio/modules/libgioremote-volume-monitor.so
>
> Ethan
Yes, strange.
My guess would be that stopping the GUI thread with an event and then
restarting it is the source of the problem, or something within the
interrupt handler code (but so convoluted to follow). You could try
this simple test and see if the file dialog button always functions or
not when leaving the main thread be--remove the lines of code as below
with comments:
+++++
Index: src/wxterminal/wxt_gui.cpp
===================================================================
RCS file: /cvsroot/gnuplot/gnuplot/src/wxterminal/wxt_gui.cpp,v
retrieving revision 1.128.2.6
diff -u -r1.128.2.6 wxt_gui.cpp
--- src/wxterminal/wxt_gui.cpp 12 Nov 2014 05:20:18 -0000 1.128.2.6
+++ src/wxterminal/wxt_gui.cpp 16 Nov 2014 02:21:55 -0000
@@ -3923,7 +3923,7 @@
wxCommandEvent event(wxExitLoopEvent);
wxt_MutexGuiEnter();
- dynamic_cast<wxtApp*>(wxTheApp)->SendEvent( event );
+// dynamic_cast<wxtApp*>(wxTheApp)->SendEvent( event );
wxt_MutexGuiLeave();
/* handle eventual interrupt, and restore original sigint handler */
@@ -4018,7 +4018,7 @@
freopen("/dev/null","w",stderr);
/* (re)start gui loop */
- wxTheApp->OnRun();
+// wxTheApp->OnRun();
FPRINTF((stderr,"child process: event loop exited\n"));
# ifdef HAVE_WORKING_FORK
+++++
The gnuplot command line process will remain suspended and
uninterruptable, but the idea is to test the GUI behavior.
There must be some way of doing this without having to stop/restart a
thread in the process.
Dan
|