Very bad response time on win64 builds using gcc 4.8 when queue is running, Issue 2384
This commit is contained in:
@@ -737,7 +737,12 @@ void batchProcessingThread (ProcessingJob* job, BatchProcessingListener* bpl, bo
|
|||||||
void startBatchProcessing (ProcessingJob* job, BatchProcessingListener* bpl, bool tunnelMetaData) {
|
void startBatchProcessing (ProcessingJob* job, BatchProcessingListener* bpl, bool tunnelMetaData) {
|
||||||
|
|
||||||
if (bpl)
|
if (bpl)
|
||||||
|
#if __GNUC__ == 4 && __GNUC_MINOR__ >= 8 && defined( WIN32 ) && defined(__x86_64__)
|
||||||
|
// See Issue 2384 "Very bad response time on win7/64 using gcc 4.8 when queue is running"
|
||||||
|
Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl, tunnelMetaData), 0, true, true, Glib::THREAD_PRIORITY_NORMAL);
|
||||||
|
#else
|
||||||
Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl, tunnelMetaData), 0, true, true, Glib::THREAD_PRIORITY_LOW);
|
Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl, tunnelMetaData), 0, true, true, Glib::THREAD_PRIORITY_LOW);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -68,8 +68,14 @@ void BatchQueueEntryUpdater::process (guint8* oimg, int ow, int oh, int newh, BQ
|
|||||||
stopped = false;
|
stopped = false;
|
||||||
tostop = false;
|
tostop = false;
|
||||||
|
|
||||||
#undef THREAD_PRIORITY_LOW
|
#if __GNUC__ == 4 && __GNUC_MINOR__ >= 8 && defined( WIN32 ) && defined(__x86_64__)
|
||||||
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::processThread), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_LOW);
|
#undef THREAD_PRIORITY_NORMAL
|
||||||
|
// See Issue 2384 comment #3
|
||||||
|
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::processThread), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_NORMAL);
|
||||||
|
#else
|
||||||
|
#undef THREAD_PRIORITY_LOW
|
||||||
|
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::processThread), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_LOW);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -204,7 +204,11 @@ void FileBrowserEntry::updateImage (rtengine::IImage8* img, double scale, rtengi
|
|||||||
param->img = img;
|
param->img = img;
|
||||||
param->scale = scale;
|
param->scale = scale;
|
||||||
param->cropParams = cropParams;
|
param->cropParams = cropParams;
|
||||||
|
#if __GNUC__ == 4 && __GNUC_MINOR__ >= 8 && defined( WIN32 ) && defined(__x86_64__)
|
||||||
|
g_idle_add_full (G_PRIORITY_DEFAULT, updateImageUI, param, NULL);
|
||||||
|
#else
|
||||||
g_idle_add_full (G_PRIORITY_LOW, updateImageUI, param, NULL);
|
g_idle_add_full (G_PRIORITY_LOW, updateImageUI, param, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileBrowserEntry::_updateImage (rtengine::IImage8* img, double s, rtengine::procparams::CropParams cropParams) {
|
void FileBrowserEntry::_updateImage (rtengine::IImage8* img, double s, rtengine::procparams::CropParams cropParams) {
|
||||||
|
@@ -70,9 +70,7 @@ public:
|
|||||||
{
|
{
|
||||||
int threadCount=1;
|
int threadCount=1;
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#ifndef WIN32 // see Issue 2370
|
|
||||||
threadCount=omp_get_num_procs();
|
threadCount=omp_get_num_procs();
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
threadPool_=new Glib::ThreadPool(threadCount,0);
|
threadPool_=new Glib::ThreadPool(threadCount,0);
|
||||||
|
Reference in New Issue
Block a user