static ber_socket_t wake_sds[2];
+#ifdef NO_THREADS
+static int waking;
+#define WAKE_LISTENER(w) \
+((w && !waking) ? tcp_write( wake_sds[1], "0", 1 ), waking=1 : 0)
+#else
#define WAKE_LISTENER(w) \
do { if (w) tcp_write( wake_sds[1], "0", 1 ); } while(0)
+#endif
#ifdef HAVE_NT_SERVICE_MANAGER
/* in nt_main.c */
if( FD_ISSET( wake_sds[0], &readfds ) ) {
char c[BUFSIZ];
tcp_read( wake_sds[0], c, sizeof(c) );
+#ifdef NO_THREADS
+ waking = 0;
+#endif
continue;
}