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;