msg_thread::msg_thread()
: started(false)
- , thread(NULL)
+ , thread(nullptr)
, thread_name("msg_thread")
{
}
msg_thread::msg_thread(const char* name)
: started(false)
- , thread(NULL)
+ , thread(nullptr)
, thread_name(name)
{
}
msg_thread::~msg_thread()
{
if (thread)
- throw std::logic_error("trying to destroy running thread");
+ xbt_die("ERROR: trying to destroy running thread");
}
void msg_thread::start()
{
mutex.acquire();
if (started)
- throw std::logic_error("thread was already started");
+ xbt_die("ERROR: thread was already started");
XBT_DEBUG("launch \"%s\"", thread_name.c_str());
thread = MSG_process_create(thread_name.c_str(),
msg_thread::start_wrapper,
{
mutex.acquire();
if (!started)
- throw std::logic_error("trying to wait a thread that was not started");
+ xbt_die("ERROR: trying to wait for a thread that was not started");
while (thread) {
XBT_DEBUG("waiting for \"%s\" to terminate",
thread_name.c_str());
XBT_DEBUG("terminate \"%s\"", self->thread_name.c_str());
self->mutex.acquire();
- self->thread = NULL;
+ self->thread = nullptr;
self->cond.signal();
self->mutex.release();
return 0;