#define COND_SIGNAL(c) \ STMT_START { \ if ((c)->waiters > 0 && \ ReleaseSemaphore((c)->sem,1,NULL) == 0) \ croak("panic: COND_SIGNAL (%ld)",GetLastError()); \ } STMT_END