Very bad response time on win64 builds using gcc 4.8 when queue is running, Issue 2384

This commit is contained in:
Ingo
2014-05-19 13:42:56 +02:00
parent 9393dad57e
commit 260e4da272
4 changed files with 17 additions and 4 deletions

View File

@@ -68,8 +68,14 @@ void BatchQueueEntryUpdater::process (guint8* oimg, int ow, int oh, int newh, BQ
stopped = false;
tostop = false;
#undef THREAD_PRIORITY_LOW
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::processThread), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_LOW);
#if __GNUC__ == 4 && __GNUC_MINOR__ >= 8 && defined( WIN32 ) && defined(__x86_64__)
#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
}
}

View File

@@ -204,7 +204,11 @@ void FileBrowserEntry::updateImage (rtengine::IImage8* img, double scale, rtengi
param->img = img;
param->scale = scale;
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);
#endif
}
void FileBrowserEntry::_updateImage (rtengine::IImage8* img, double s, rtengine::procparams::CropParams cropParams) {

View File

@@ -70,9 +70,7 @@ public:
{
int threadCount=1;
#ifdef _OPENMP
#ifndef WIN32 // see Issue 2370
threadCount=omp_get_num_procs();
#endif
#endif
threadPool_=new Glib::ThreadPool(threadCount,0);