#define CONTROL_TERMINATE 't'
#define CONTROL_REWATCH 'r'
static pthread_t watch_thread;
static int control_pipe[2]= { -1, -1 };
static pthread_mutex_t watch_list_mutex= PTHREAD_MUTEX_INITIALIZER;
static int volatile watch_list_count= 0,
watch_list_alloc= 0;
static struct socketalarm
*volatile *volatile watch_list= NULL;
// May only be called by Perl's thread
static bool watch_list_add(struct socketalarm *alarm);
// May only be called by Perl's thread
static bool watch_list_remove(struct socketalarm *alarm);
static void watch_list_item_get_status(struct socketalarm *alarm, int *cur_action_out);
static void shutdown_watch_thread();
static void* watch_thread_main(void*);