Revision: 40750
          http://brlcad.svn.sourceforge.net/brlcad/?rev=40750&view=rev
Author:   davidloman
Date:     2010-09-28 18:30:12 +0000 (Tue, 28 Sep 2010)

Log Message:
-----------
Made ControlledThread::shutdown() take an optional blocking boolean.  Default 
is true.  Shutdown() now blocks until thread has terminated.

Modified Paths:
--------------
    rt^3/trunk/include/ControlledThread.h
    rt^3/trunk/src/utility/ControlledThread.cxx

Modified: rt^3/trunk/include/ControlledThread.h
===================================================================
--- rt^3/trunk/include/ControlledThread.h       2010-09-28 18:21:45 UTC (rev 
40749)
+++ rt^3/trunk/include/ControlledThread.h       2010-09-28 18:30:12 UTC (rev 
40750)
@@ -33,7 +33,7 @@
        virtual ~ControlledThread();
 
        bool startup();
-       bool shutdown();
+       bool shutdown(bool block=true);
 
 protected:
        virtual bool preStartupHook();

Modified: rt^3/trunk/src/utility/ControlledThread.cxx
===================================================================
--- rt^3/trunk/src/utility/ControlledThread.cxx 2010-09-28 18:21:45 UTC (rev 
40749)
+++ rt^3/trunk/src/utility/ControlledThread.cxx 2010-09-28 18:30:12 UTC (rev 
40750)
@@ -43,9 +43,15 @@
        bool postRetVal = this->postStartupHook();
 }
 
-bool ControlledThread::shutdown() {
+bool ControlledThread::shutdown(bool block) {
        bool preRetVal = this->preShutdownHook();
        this->runCmd = false;
+
+       if (block)
+               while (this->isRunning()) {
+                       GSThread::msleep(100);
+               }
+
        bool postRetVal = this->postShutdownHook();
 }
 
@@ -56,7 +62,7 @@
        this->_run();
 
        this->postRunHook();
-       this->runStatus = true;
+       this->runStatus = false;
 }
 
 void ControlledThread::_run() {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to