mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
threads: introduce util/threadnames, refactor thread naming
This work is prerequisite to attaching thread names to log lines and deadlock debug utilities. This code allows setting of an "internal" threadname per thread on platforms where thread_local is available. This commit also moves RenameThread() out of a more general module and adds a numeric suffix to disambiguate between threads with the same name. It explicitly names a few main threads using the new util::ThreadRename().
This commit is contained in:
parent
188ca75e5f
commit
ae5f2b6a6c
12 changed files with 103 additions and 36 deletions
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <chainparamsbase.h>
|
||||
#include <compat.h>
|
||||
#include <util/threadnames.h>
|
||||
#include <util/system.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <netbase.h>
|
||||
|
|
@ -17,7 +18,7 @@
|
|||
#include <memory>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <string>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
@ -284,7 +285,7 @@ static void http_reject_request_cb(struct evhttp_request* req, void*)
|
|||
/** Event dispatcher thread */
|
||||
static bool ThreadHTTP(struct event_base* base)
|
||||
{
|
||||
RenameThread("bitcoin-http");
|
||||
util::ThreadRename("http");
|
||||
LogPrint(BCLog::HTTP, "Entering http event loop\n");
|
||||
event_base_dispatch(base);
|
||||
// Event loop will be interrupted by InterruptHTTPServer()
|
||||
|
|
@ -335,9 +336,9 @@ static bool HTTPBindAddresses(struct evhttp* http)
|
|||
}
|
||||
|
||||
/** Simple wrapper to set thread name and run work queue */
|
||||
static void HTTPWorkQueueRun(WorkQueue<HTTPClosure>* queue)
|
||||
static void HTTPWorkQueueRun(WorkQueue<HTTPClosure>* queue, int worker_num)
|
||||
{
|
||||
RenameThread("bitcoin-httpworker");
|
||||
util::ThreadRename(strprintf("httpworker.%i", worker_num));
|
||||
queue->Run();
|
||||
}
|
||||
|
||||
|
|
@ -430,7 +431,7 @@ void StartHTTPServer()
|
|||
threadHTTP = std::thread(ThreadHTTP, eventBase);
|
||||
|
||||
for (int i = 0; i < rpcThreads; i++) {
|
||||
g_thread_http_workers.emplace_back(HTTPWorkQueueRun, workQueue);
|
||||
g_thread_http_workers.emplace_back(HTTPWorkQueueRun, workQueue, i);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue