// A thread that accepts new connections on a given socket,
// and hands them off to the server pool.
-void *acceptor_thread_run(void *arg);
+class AcceptorThread {
+public:
+ AcceptorThread(int server_sock);
+ void run();
+ void stop();
+
+private:
+ // Recovers the this pointer, and hands over control to do_work().
+ static void *do_work_thunk(void *arg);
+
+ void do_work();
+
+ int server_sock;
+
+ pthread_t worker_thread;
+ volatile bool should_stop;
+};
#endif // !defined(_ACCEPTOR_H)