diff --git a/src/input/Manager.cc b/src/input/Manager.cc index 63fa59d0bc..9d2333ac9c 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -255,10 +255,10 @@ ReaderBackend* Manager::CreateBackend(ReaderFrontend* frontend, bro_int_t type) assert(ir->factory); + frontend->ty_name = ir->name; ReaderBackend* backend = (*ir->factory)(frontend); assert(backend); - frontend->ty_name = ir->name; return backend; } diff --git a/src/logging/Manager.cc b/src/logging/Manager.cc index f0b5cc1748..e916922edc 100644 --- a/src/logging/Manager.cc +++ b/src/logging/Manager.cc @@ -191,10 +191,10 @@ WriterBackend* Manager::CreateBackend(WriterFrontend* frontend, bro_int_t type) assert(ld->factory); + frontend->ty_name = ld->name; WriterBackend* backend = (*ld->factory)(frontend); assert(backend); - frontend->ty_name = ld->name; return backend; } diff --git a/src/threading/BasicThread.cc b/src/threading/BasicThread.cc index e590b13434..96d0d5efd2 100644 --- a/src/threading/BasicThread.cc +++ b/src/threading/BasicThread.cc @@ -80,18 +80,23 @@ const char* BasicThread::Fmt(const char* format, ...) void BasicThread::Start() { + int err; + if ( started ) return; - if ( pthread_mutex_init(&terminate, 0) != 0 ) - reporter->FatalError("Cannot create terminate mutex for thread %s", name.c_str()); + err = pthread_mutex_init(&terminate, 0); + if ( err != 0 ) + reporter->FatalError("Cannot create terminate mutex for thread %s:%s", name.c_str(), strerror(err)); // We use this like a binary semaphore and acquire it immediately. - if ( pthread_mutex_lock(&terminate) != 0 ) - reporter->FatalError("Cannot aquire terminate mutex for thread %s", name.c_str()); - - if ( pthread_create(&pthread, 0, BasicThread::launcher, this) != 0 ) - reporter->FatalError("Cannot create thread %s", name.c_str()); + err = pthread_mutex_lock(&terminate); + if ( err != 0 ) + reporter->FatalError("Cannot aquire terminate mutex for thread %s:%s", name.c_str(), strerror(err)); + + err = pthread_create(&pthread, 0, BasicThread::launcher, this); + if ( err != 0 ) + reporter->FatalError("Cannot create thread %s:%s", name.c_str(), strerror(err)); DBG_LOG(DBG_THREADING, "Started thread %s", name.c_str());