*** src/lib/omnithread/posix.cc Sat Aug 22 14:05:34 1998 --- newsrc/lib/omnithread/posix.cc Tue Nov 24 14:30:51 1998 *************** *** 152,157 **** --- 152,158 ---- { timespec rqts = { secs, nanosecs }; + again: int rc = ERRNO(pthread_cond_timedwait(&posix_cond, &mutex->posix_mutex, &rqts)); if (rc == 0) *************** *** 160,165 **** --- 161,174 ---- #if (PthreadDraftVersion <= 6) if (rc == EAGAIN) return 0; + #endif + + #if defined(__GLIBC__) + // Some versions of the glibc 2.0.x produces this errno when the + // program is debugged under gdb. Straightly speaking this is non-posix + // compliant. We catch this here to make debugging possible. + if (rc == EINTR) + goto again; #endif if (rc == ETIMEDOUT)