Avoid starting an explicit event loop in worker threads.
This reduces the overhead of task pool threads slightly and simplifies stack traces in case of errors.
This commit is contained in:
parent
dacd12ed99
commit
849bca4855
1 changed files with 1 additions and 9 deletions
|
@ -253,14 +253,8 @@ private final class WorkerThread : Thread {
|
|||
try {
|
||||
if (m_pool.m_state.lock.term) return;
|
||||
logDebug("entering worker thread");
|
||||
runTask(&handleWorkerTasks);
|
||||
logDebug("running event loop");
|
||||
if (!m_pool.m_state.lock.term) runEventLoop();
|
||||
handleWorkerTasks();
|
||||
logDebug("Worker thread exit.");
|
||||
} catch (Exception e) {
|
||||
scope (failure) abort();
|
||||
logFatal("Worker thread terminated due to uncaught exception: %s", e.msg);
|
||||
logDebug("Full error: %s", e.toString().sanitize());
|
||||
} catch (Throwable th) {
|
||||
logFatal("Worker thread terminated due to uncaught error: %s", th.msg);
|
||||
logDebug("Full error: %s", th.toString().sanitize());
|
||||
|
@ -307,8 +301,6 @@ private final class WorkerThread : Thread {
|
|||
if (threads.length > 0 && !queue.empty)
|
||||
logWarn("Worker threads shut down with worker tasks still left in the queue.");
|
||||
}
|
||||
|
||||
exitEventLoop();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue