[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd, commited 1/2] htl: Simplify non-cancel path of __pthread_cond_tim
From: |
Samuel Thibault |
Subject: |
[hurd, commited 1/2] htl: Simplify non-cancel path of __pthread_cond_timedwait_internal |
Date: |
Wed, 24 Jun 2020 01:20:23 +0200 |
Since __pthread_exit does not return, we do not need to indent the
noncancel path
* sysdeps/htl/pt-cond-timedwait.c (__pthread_cond_timedwait_internal):
Move cancelled path before non-cancelled path, to avoid "else"
indentation.
---
sysdeps/htl/pt-cond-timedwait.c | 41 +++++++++++++++++----------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/sysdeps/htl/pt-cond-timedwait.c b/sysdeps/htl/pt-cond-timedwait.c
index c05944d16d..f7801b30ae 100644
--- a/sysdeps/htl/pt-cond-timedwait.c
+++ b/sysdeps/htl/pt-cond-timedwait.c
@@ -117,29 +117,30 @@ __pthread_cond_timedwait_internal (pthread_cond_t *cond,
cancelled = (self->cancel_state == PTHREAD_CANCEL_ENABLE)
&& self->cancel_pending;
- if (!cancelled)
+ if (cancelled)
{
- self->cancel_hook = cancel_hook;
- self->cancel_hook_arg = &ctx;
- oldtype = self->cancel_type;
-
- if (oldtype != PTHREAD_CANCEL_DEFERRED)
- self->cancel_type = PTHREAD_CANCEL_DEFERRED;
-
- /* Add ourselves to the list of waiters. This is done while setting
- the cancellation hook to simplify the cancellation procedure, i.e.
- if the thread is queued, it can be cancelled, otherwise it is
- already unblocked, progressing on the return path. */
- __pthread_spin_wait (&cond->__lock);
- __pthread_enqueue (&cond->__queue, self);
- if (cond->__attr != NULL && clockid == -1)
- clock_id = cond->__attr->__clock;
- __pthread_spin_unlock (&cond->__lock);
+ __pthread_mutex_unlock (&self->cancel_lock);
+ __pthread_exit (PTHREAD_CANCELED);
}
- __pthread_mutex_unlock (&self->cancel_lock);
- if (cancelled)
- __pthread_exit (PTHREAD_CANCELED);
+ self->cancel_hook = cancel_hook;
+ self->cancel_hook_arg = &ctx;
+ oldtype = self->cancel_type;
+
+ if (oldtype != PTHREAD_CANCEL_DEFERRED)
+ self->cancel_type = PTHREAD_CANCEL_DEFERRED;
+
+ /* Add ourselves to the list of waiters. This is done while setting
+ the cancellation hook to simplify the cancellation procedure, i.e.
+ if the thread is queued, it can be cancelled, otherwise it is
+ already unblocked, progressing on the return path. */
+ __pthread_spin_wait (&cond->__lock);
+ __pthread_enqueue (&cond->__queue, self);
+ if (cond->__attr != NULL && clockid == -1)
+ clock_id = cond->__attr->__clock;
+ __pthread_spin_unlock (&cond->__lock);
+
+ __pthread_mutex_unlock (&self->cancel_lock);
/* Release MUTEX before blocking. */
__pthread_mutex_unlock (mutex);
--
2.27.0