From 9d9644cb310413b07c79a11574b3e7f0fdc2b7f0 Mon Sep 17 00:00:00 2001 From: Hayodea Hekol Date: Thu, 20 Nov 2025 02:18:25 -0400 Subject: [PATCH] PCloudStimBuff: Call stop=>start in destroyAttachedStimBuff This ensures that we can avoid races when adding and removing stimbuffs to a stimproducer. At least in theory. I can think of some ways in which this current design may result in races or other bad conditions. --- stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp b/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp index 33ebde9..8db55d6 100644 --- a/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp +++ b/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp @@ -210,6 +210,8 @@ void PcloudStimulusProducer::destroyAttachedStimulusBuffer( { if (!buffer) { return; } + this->stop(); + // Clear specialized buffer pointers if they match if (meshStimulusBuffer == buffer) { meshStimulusBuffer.reset(); } @@ -220,6 +222,8 @@ void PcloudStimulusProducer::destroyAttachedStimulusBuffer( // Call base class implementation to remove from attachedStimulusBuffers StimulusProducer::destroyAttachedStimulusBuffer(buffer); + + this->start(); } std::shared_ptr