1
//---------------------------------------------------------------------------
3
// Project: OpenWalnut ( http://www.openwalnut.org )
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
8
// This file is part of OpenWalnut.
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
23
//---------------------------------------------------------------------------
25
#include "WThreadedFunction.h"
27
WThreadedFunctionBase::WThreadedFunctionBase()
28
: m_doneCondition( new WCondition ),
33
m_status.getWriteTicket()->get() = W_THREADS_INITIALIZED;
36
WThreadedFunctionBase::~WThreadedFunctionBase()
38
m_exceptionSignal.disconnect_all_slots();
41
WThreadedFunctionStatus WThreadedFunctionBase::status()
43
return m_status.getReadTicket()->get();
46
boost::shared_ptr< WCondition > WThreadedFunctionBase::getThreadsDoneCondition()
48
return m_doneCondition;
51
void WThreadedFunctionBase::subscribeExceptionSignal( ExceptionFunction func )
55
m_exceptionSignal.connect( func );