summaryrefslogtreecommitdiff
path: root/locks/netware/thread_mutex.c
diff options
context:
space:
mode:
Diffstat (limited to 'locks/netware/thread_mutex.c')
-rw-r--r--locks/netware/thread_mutex.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/locks/netware/thread_mutex.c b/locks/netware/thread_mutex.c
index c634edfac..ecb0112f4 100644
--- a/locks/netware/thread_mutex.c
+++ b/locks/netware/thread_mutex.c
@@ -112,30 +112,26 @@ APR_DECLARE(apr_status_t) apr_thread_mutex_trylock(apr_thread_mutex_t *mutex)
}
APR_DECLARE(apr_status_t) apr_thread_mutex_timedlock(apr_thread_mutex_t *mutex,
- apr_time_t timeout,
- int absolute)
+ apr_time_t timeout)
{
if (mutex->cond) {
apr_status_t rv;
NXLock(mutex->mutex);
if (mutex->locked) {
- mutex->num_waiters++;
- if (timeout < 0) {
- rv = apr_thread_cond_wait(mutex->cond, mutex);
+ if (!timeout) {
+ rv = APR_TIMEUP;
}
else {
- if (absolute) {
- apr_time_t now = apr_time_now();
- if (timeout > now) {
- timeout -= now;
- }
- else {
- timeout = 0;
- }
+ mutex->num_waiters++;
+ if (timeout < 0) {
+ rv = apr_thread_cond_wait(mutex->cond, mutex);
+ }
+ else {
+ rv = apr_thread_cond_timedwait(mutex->cond, mutex,
+ timeout);
}
- rv = apr_thread_cond_timedwait(mutex->cond, mutex, timeout);
+ mutex->num_waiters--;
}
- mutex->num_waiters--;
}
else {
mutex->locked = 1;