diff --git a/tests/TellActorFromAnywhereTest.cpp b/tests/TellActorFromAnywhereTest.cpp index 70800ac153e3fa9fce342659631138f7a75d805c..3e63f1f1a4b9c49d41d6bb11a5c00d093886bfcb 100644 --- a/tests/TellActorFromAnywhereTest.cpp +++ b/tests/TellActorFromAnywhereTest.cpp @@ -18,14 +18,16 @@ class SignallingActor : public Actor<unsigned int> { }; void emperTest() { - BinaryPrivateSemaphore bps; - SignallingActor signallingActor(bps); - signallingActor.start(); + // Heap allocate the Actor and the BPS until we have a way to + // cleanly terminate the Actor. + auto* bps = new BinaryPrivateSemaphore(); + auto* signallingActor = new SignallingActor(*bps); + signallingActor->start(); // TODO: Use std::jthread once EMPER uses C++20. - std::thread signallingThread([&] { signallingActor.tellFromAnywhere(1); }); + std::thread signallingThread([&] { signallingActor->tellFromAnywhere(1); }); - bps.wait(); + bps->wait(); // TODO: Remove this once we use std::jthread when EMPER uses C++20. signallingThread.join();