This looks a little bit dangerous.  Aren't there two legitimate cases
of EAGAIN?  The timed-out, but also that it was interrupted?

Is there any way to disambiguate these?

Bill

David Jones wrote:
pthread_cond_timedwait on zOS returns EAGAIN, not ETIMEDOUT as on other unix platforms. Change apr_thread_cond_timedwait to check platform and rv when deciding to return APR_TIMEUP.
I didn't add any config for the zOS rv , as it didn't seem to add anything.

apr/testall testlock test_timeoutcond will pass with this change, it does not currently.




Index: thread_cond.c
===================================================================
--- thread_cond.c       (revision 579232)
+++ thread_cond.c       (working copy)
@@ -92,7 +92,11 @@
         rv = errno;
     }
 #endif
+#ifdef __MVS__
+    if (EAGAIN == rv) {
+#else
     if (ETIMEDOUT == rv) {
+#endif /* __MVS__ */
         return APR_TIMEUP;
     }
     return rv;

Reply via email to