Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 27 Oct 1999 00:33:00 +0000 (00:33 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 27 Oct 1999 00:33:00 +0000 (00:33 +0000)
1999-10-26  Ulrich Drepper  <drepper@cygnus.com>

* restart.h (suspend_with_cancellation): Rewrite as a macro.

* condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.

linuxthreads/ChangeLog
linuxthreads/condvar.c
linuxthreads/restart.h

index db11009..53aea3f 100644 (file)
@@ -1,3 +1,9 @@
+1999-10-26  Ulrich Drepper  <drepper@cygnus.com>
+
+       * restart.h (suspend_with_cancellation): Rewrite as a macro.
+
+       * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
+
 1999-10-25  Andreas Jaeger  <aj@suse.de>
 
        * internals.h: Remove K&R compatibility.
index 672ccb1..2ea7513 100644 (file)
@@ -61,7 +61,7 @@ int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
   return 0;
 }
 
-static inline int
+static int
 pthread_cond_timedwait_relative(pthread_cond_t *cond,
                                pthread_mutex_t *mutex,
                                const struct timespec * reltime)
index 54a6f50..7492013 100644 (file)
@@ -33,25 +33,26 @@ static inline void suspend(pthread_descr self)
   } while (self->p_signal !=__pthread_sig_restart );
 }
 
-static inline void suspend_with_cancellation(pthread_descr self)
-{
-  sigset_t mask;
-  sigjmp_buf jmpbuf;
-
-  sigprocmask(SIG_SETMASK, NULL, &mask); /* Get current signal mask */
-  sigdelset(&mask, __pthread_sig_restart); /* Unblock the restart signal */
-  /* No need to save the signal mask, we'll restore it ourselves */
-  if (sigsetjmp(jmpbuf, 0) == 0) {
-    self->p_cancel_jmp = &jmpbuf;
-    if (! (self->p_canceled && self->p_cancelstate == PTHREAD_CANCEL_ENABLE)) {
-      do {
-       self->p_signal = 0;
-        sigsuspend(&mask);               /* Wait for a signal */
-      } while (self->p_signal != __pthread_sig_restart);
-    }
-    self->p_cancel_jmp = NULL;
-  } else {
-    sigaddset(&mask, __pthread_sig_restart); /* Reblock the restart signal */
-    sigprocmask(SIG_SETMASK, &mask, NULL);
-  }
+#define suspend_with_cancellation(self) \
+{                                                                            \
+  sigset_t mask;                                                             \
+  sigjmp_buf jmpbuf;                                                         \
+                                                                             \
+  sigprocmask(SIG_SETMASK, NULL, &mask); /* Get current signal mask */       \
+  sigdelset(&mask, __pthread_sig_restart); /* Unblock the restart signal */   \
+  /* No need to save the signal mask, we'll restore it ourselves */          \
+  if (sigsetjmp(jmpbuf, 0) == 0) {                                           \
+    self->p_cancel_jmp = &jmpbuf;                                            \
+    if (! (self->p_canceled                                                  \
+          && self->p_cancelstate == PTHREAD_CANCEL_ENABLE)) {                \
+      do {                                                                   \
+       self->p_signal = 0;                                                   \
+        sigsuspend(&mask);               /* Wait for a signal */             \
+      } while (self->p_signal != __pthread_sig_restart);                     \
+    }                                                                        \
+    self->p_cancel_jmp = NULL;                                               \
+  } else {                                                                   \
+    sigaddset(&mask, __pthread_sig_restart); /* Reblock the restart signal */ \
+    sigprocmask(SIG_SETMASK, &mask, NULL);                                   \
+  }                                                                          \
 }