unnamed threads: Obliterate

Ever read gdb output and you just kinda get a headache because you have
to infer what a thread is by reading the stack trace? It's not hard, but
we could also just never have to do that again, which is also not hard.

Sample:

(gdb) info thr
  Id   Target Id                    Frame
* 1    LWP 3719283 "nix-daemon"     0x00007e558587da0f in accept ()
   from target:/nix/store/c10zhkbp6jmyh0xc5kd123ga8yy2p4hk-glibc-2.39-52/lib/libc.so.6
  2    LWP 3719284 "signal handler" 0x00007e55857b2bea in sigtimedwait ()
   from target:/nix/store/c10zhkbp6jmyh0xc5kd123ga8yy2p4hk-glibc-2.39-52/lib/libc.so.6

The API design for this is forced by the macOS pthread_setname_np only
being able to change the current thread's name, but if we just conform
everything to that, it works everywhere.

Change-Id: I2b1d6ed41e3c94170cb0b4e73ad66f239ebd9c88
This commit is contained in:
Jade Lovelace
2024-11-18 18:53:40 -08:00
parent 6a9b66357e
commit 519957bd59
19 changed files with 93 additions and 15 deletions
+3 -1
View File
@@ -22,7 +22,7 @@ class ThreadPool
{
public:
ThreadPool(size_t maxThreads = 0);
ThreadPool(const char * name, size_t maxThreads = 0);
~ThreadPool();
@@ -56,6 +56,8 @@ private:
size_t maxThreads;
const char * name;
struct State
{
std::queue<work_t> pending;