diff --git a/rtgui/progressconnector.h b/rtgui/progressconnector.h index 377749b14..33080864c 100644 --- a/rtgui/progressconnector.h +++ b/rtgui/progressconnector.h @@ -22,6 +22,7 @@ #include #include #include +#include #undef THREAD_PRIORITY_NORMAL @@ -83,23 +84,23 @@ class ProgressConnector { Glib::Mutex* qMutex; static int emitEndSignal (void* data) { - gdk_threads_enter (); + // gdk_threads_enter (); sigc::signal0* opEnd = (sigc::signal0*) data; int r = opEnd->emit (); delete opEnd; - gdk_threads_leave (); + //gdk_threads_leave (); return r; } void workingThread () { - if (!qMutex) - qMutex = new Glib::Mutex (); + /// if (!qMutex) + // qMutex = new Glib::Mutex (); - qMutex->lock(); + // qMutex->lock(); retval = opStart.emit (); g_idle_add (ProgressConnector::emitEndSignal, new sigc::signal0 (opEnd)); - workThread = 0; - qMutex->unlock(); + // workThread = 0; + // qMutex->unlock(); } public: @@ -110,7 +111,9 @@ class ProgressConnector { if( !workThread ){ opStart.connect (startHandler); opEnd.connect (endHandler); - workThread = Glib::Thread::create(sigc::mem_fun(*this, &ProgressConnector::workingThread), 0, true, true, Glib::THREAD_PRIORITY_NORMAL); + // rtengine::batchThread->yield(); + workingThread(); + // workThread = Glib::Thread::create(sigc::mem_fun(*this, &ProgressConnector::workingThread), 0, true, true, Glib::THREAD_PRIORITY_NORMAL); } if (qMutex)