Stoppable, make stop() require call to start()

This commit is contained in:
Vinnie Falco
2013-11-01 13:31:38 -07:00
parent ef94f42b62
commit 00575cf847
2 changed files with 7 additions and 2 deletions

View File

@@ -46,7 +46,7 @@ Stoppable::Stoppable (char const* name, Stoppable& parent)
Stoppable::~Stoppable ()
{
// Children must be stopped.
bassert (m_childrenStopped);
bassert (m_started.get() == 0 || m_childrenStopped);
}
bool Stoppable::isStopping() const
@@ -177,6 +177,9 @@ void RootStoppable::start ()
void RootStoppable::stop (Journal journal)
{
// Must have a prior call to start()
bassert (m_started.get() != 0);
if (! m_calledStop.compareAndSetBool (1, 0))
{
journal.warning << "Stoppable::stop called again";