platform/shared/common/RhoThread.h in rhodes-2.0.3 vs platform/shared/common/RhoThread.h in rhodes-2.1.0
- old
+ new
@@ -21,11 +21,11 @@
CRhoThread(IRhoClassFactory* factory);
virtual ~CRhoThread(void){};
virtual void start(EPriority ePriority);
- virtual void stop(unsigned int nTimeoutToKill){ m_nState |= TS_STOPPING; m_pImpl->stop(nTimeoutToKill); m_nState &= ~TS_STOPPING; }
- virtual void wait(unsigned int nTimeout){ m_nState |= TS_WAIT; m_pImpl->wait(nTimeout); m_nState &= ~TS_WAIT; }
+ virtual void stop(unsigned int nTimeoutToKill){ m_nState |= TS_STOPPING; if (m_nState&TS_RUNNING) m_pImpl->stop(nTimeoutToKill); m_nState &= ~TS_STOPPING; }
+ virtual void wait(unsigned int nTimeout){ m_nState |= TS_WAIT; if ((m_nState&TS_RUNNING) && !(m_nState&TS_STOPPING) ) m_pImpl->wait(nTimeout); m_nState &= ~TS_WAIT; }
virtual void stopWait(){ if (isWaiting()) m_pImpl->stopWait(); }
virtual void sleep(unsigned int nTimeout){ m_pImpl->sleep(nTimeout); }
virtual void run() = 0;
virtual void runObject()
{