From 8c2bd1a5555bfb1e2a4aef4434f9d8f7e77435f6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 24 Dec 2021 15:00:58 -0700 Subject: [PATCH] triggerbox: get thread-based deletion system to actually work Needed to pass custom deleter to the shared_ptr::reset() call where the trigger is replaced --- libs/ardour/triggerbox.cc | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/libs/ardour/triggerbox.cc b/libs/ardour/triggerbox.cc index 8a1b67df07..93bfa5dc36 100644 --- a/libs/ardour/triggerbox.cc +++ b/libs/ardour/triggerbox.cc @@ -113,7 +113,6 @@ Trigger::Trigger (uint32_t n, TriggerBox& b) void Trigger::request_trigger_delete (Trigger* t) { - std::cerr << "RTD\n"; TriggerBox::worker->request_delete_trigger (t); } @@ -1835,12 +1834,7 @@ TriggerBox::maybe_swap_pending (uint32_t slot) if (p == Trigger::MagicClearPointerValue) { all_triggers[slot]->clear_region (); } else { - if (all_triggers[slot]) { - /* Put existing Trigger for this slot in the deletion queue */ - // XXX _deletion_queue....; - } - - all_triggers[slot].reset (p); + all_triggers[slot].reset (p, Trigger::request_trigger_delete); TriggerSwapped (slot); /* EMIT SIGNAL */ } } @@ -2990,7 +2984,6 @@ TriggerBoxThread::set_region (TriggerBox& box, uint32_t slot, boost::shared_ptr< void TriggerBoxThread::request_delete_trigger (Trigger* t) { - std::cerr << "RDT\n"; TriggerBoxThread::Request* req = new TriggerBoxThread::Request (DeleteTrigger); req->trigger = t; queue_request (req); @@ -2999,6 +2992,5 @@ TriggerBoxThread::request_delete_trigger (Trigger* t) void TriggerBoxThread::delete_trigger (Trigger* t) { - std::cerr << "trigger delete for " << t << endl; delete t; }