6 // A rather generic thread class with start/stop functionality.
7 // NOTE: stop is somewhat racy (there's no guaranteed breakout from syscalls),
8 // since signals don't stick. We'll need to figure out something more
9 // intelligent later, probably based on sending a signal to an fd.
18 // Recovers the this pointer, and calls do_work().
19 static void *do_work_thunk(void *arg);
21 virtual void do_work() = 0;
23 volatile bool should_stop;
25 // A pipe that you can poll on if you want to see when should_stop
26 // has been set to true; stop() will write a single byte to the pipe
27 // and then close the other end.
31 pthread_t worker_thread;
35 #endif // !defined(_THREAD_H)