|
From: Frantisek K. <fkl...@re...> - 2014-02-03 17:31:02
|
Hi, wxt terminal always crashes on a haswell machine. It works reliably on older ivy bridge. It seems like wxt terminal on several places unlocks mutexes which are not locked. That combined with XBEGIN/XEND instructions on haswell produces a crash in glibc. wxwidgets documentation (http://docs.wxwidgets.org/stable/group__group__funcmacro__thread.html#ga6671c1599fd4ccf6a7c7bb90b2304709) says: void wxMutexGuiEnter Note Under GTK, no creation of top-level windows is allowed in any thread but the main one. [1] Gnuplot source (gnuplot-4.6.3/src/wxterminal/wxt_gui.cpp:222) says: /* Workaround for a deadlock when the main thread will Wait() for this one. * This issue comes from the fact that our gui main loop is not in the * main thread as wxWidgets was written for. */ wxt_MutexGuiLeave(); This is not the only place where a crash occurs. It depends on whether gnuplot runs with -p argument and whether it gets the plot command as a command line argument or interactively, but there is always some extra unlocking somewhere. Is it possible to run Gnuplot with gtk as a wxWidgets backend? Thanks. Fero PS: My system is Fedora 20 Thread no. 1 (8 frames) #0 _xend at ../nptl/sysdeps/unix/sysv/linux/x86/elision-unlock.c:33 #1 __lll_unlock_elision at ../nptl/sysdeps/unix/sysv/linux/x86/elision-unlock.c:29 #2 wxMutexInternal::Unlock at src/unix/threadpsx.cpp:297 #3 wxMutex::Unlock at include/wx/thrimpl.cpp:60 #4 wxMutexGuiLeave at src/unix/threadpsx.cpp:1737 #5 wxt_MutexGuiLeave at ../../src/wxterminal/wxt_gui.cpp:3671 #6 wxtThread::Entry at ../../src/wxterminal/wxt_gui.cpp:222 #7 wxThreadInternal::PthreadStart at src/unix/threadpsx.cpp:766 |