diff options
Diffstat (limited to 'libs/pbd/event_loop.cc')
-rw-r--r-- | libs/pbd/event_loop.cc | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/libs/pbd/event_loop.cc b/libs/pbd/event_loop.cc index e95a938d63..58ab891c4b 100644 --- a/libs/pbd/event_loop.cc +++ b/libs/pbd/event_loop.cc @@ -29,21 +29,15 @@ EventLoop::invalidate_request (void* data) InvalidationRecord* ir = (InvalidationRecord*) data; if (ir->event_loop) { - Glib::Mutex::Lock lm (ir->event_loop->slot_invalidation_mutex()); - if (ir->request) { - cerr << "Object deleted had outstanding event loop request, IR created @ " - << ir->file << ':' << ir->line - << endl; - ir->request->valid = false; - ir->request->invalidation = 0; - } else { - cerr << "No queued request associated with object deletion from " - << ir->file << ':' << ir->line - << endl; - - } - - delete ir; + Glib::Mutex::Lock lm (ir->event_loop->slot_invalidation_mutex()); + for (list<BaseRequestObject*>::iterator i = ir->requests.begin(); i != ir->requests.end(); ++i) { + cerr << "Object deleted had outstanding event loop request, IR created @ " + << ir->file << ':' << ir->line + << endl; + (*i)->valid = false; + (*i)->invalidation = 0; + } + delete ir; } return 0; |