From 522c2e562e1cc794cf3396500f20ff4898304685 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sat, 15 Apr 2017 20:02:05 -0400 Subject: [PATCH] libCom/test: epicsThreadTest cleanup --- src/libCom/test/epicsThreadTest.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libCom/test/epicsThreadTest.cpp b/src/libCom/test/epicsThreadTest.cpp index f80d3da7e..eb26cc8bf 100644 --- a/src/libCom/test/epicsThreadTest.cpp +++ b/src/libCom/test/epicsThreadTest.cpp @@ -31,6 +31,7 @@ public: virtual ~myThread(); virtual void run(); epicsThread thread; + epicsEvent startEvt; private: int *argvalue; }; @@ -48,6 +49,7 @@ myThread::~myThread() {delete argvalue;} void myThread::run() { + startEvt.signal(); int *pset = argvalue; privateKey.set(argvalue); epicsThreadSleep(2.0); @@ -99,7 +101,12 @@ MAIN(epicsThreadTest) startPriority = myThreads[i]->thread.getPriority(); myThreads[i]->thread.setPriority(startPriority + i); } - epicsThreadSleep(3.0); + + for (int i = 0; i < ntasks; i++) { + myThreads[i]->startEvt.wait(); + myThreads[i]->thread.exitWait(); + delete myThreads[i]; + } unsigned int stackSize = epicsThreadGetStackSize(epicsThreadStackSmall);