remove invalid assertion - #6634
There is a highly unlikely case where the render thread can have zero requests in the queue, but it is not supposed to be terminated. 1) WaveView::queue_get_image(); wake up thread, *but* the thread does not start yet 2) WaveView::cancel_my_render_request(); and now the thread starts. 1,2 are initiated by user actions from the GUI thread and are normally orders of magnitude slower than scheduler-thread wakeup.
This commit is contained in:
parent
d31ac095e0
commit
5bdc869e49
@ -1508,7 +1508,7 @@ WaveView::start_drawing_thread ()
|
||||
void
|
||||
WaveView::stop_drawing_thread ()
|
||||
{
|
||||
if (_drawing_thread) {
|
||||
while (_drawing_thread) {
|
||||
Glib::Threads::Mutex::Lock lm (request_queue_lock);
|
||||
g_atomic_int_set (&drawing_thread_should_quit, 1);
|
||||
request_cond.signal ();
|
||||
@ -1537,8 +1537,7 @@ WaveView::drawing_thread ()
|
||||
}
|
||||
|
||||
if (request_queue.empty()) {
|
||||
assert (g_atomic_int_get (&drawing_thread_should_quit));
|
||||
continue; // or break;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* remove the request from the queue (remember: the "request"
|
||||
|
Loading…
Reference in New Issue
Block a user