diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-08-29 21:43:55 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-08-29 21:43:55 +0000 |
commit | 823175ffcf86954500e7bcc23976c795796c9657 (patch) | |
tree | 121f9307bba33778483274c68e074ed25fbea4db /ace | |
parent | 3a3819c12432c667bdf416b1fdf143dd0dc8af11 (diff) | |
download | ATCD-823175ffcf86954500e7bcc23976c795796c9657.tar.gz |
ChangeLogTag:Sun Aug 29 07:53:33 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace')
-rw-r--r-- | ace/OS.h | 3 | ||||
-rw-r--r-- | ace/OS.i | 20 | ||||
-rw-r--r-- | ace/config-linux-common.h | 4 | ||||
-rw-r--r-- | ace/config-linux-lxpthreads.h | 2 | ||||
-rw-r--r-- | ace/config-linux-pthread.h | 1 | ||||
-rw-r--r-- | ace/config-sunos5.5.h | 1 |
6 files changed, 26 insertions, 5 deletions
@@ -6615,6 +6615,9 @@ public: int *old_type); static int sigwait (sigset_t *set, int *sig = 0); + static int sigtimedwait (const sigset_t *set, + siginfo_t *info, + const struct timespec *timeout); static void thr_testcancel (void); static void thr_yield (void); @@ -6897,6 +6897,26 @@ ACE_OS::sigwait (sigset_t *set, int *sig) #endif /* ACE_HAS_THREADS */ } +ACE_INLINE int +ACE_OS::sigtimedwait (const sigset_t *set, + siginfo_t *info, + const struct timespec *timeout +{ + ACE_TRACE ("ACE_OS::sigtimedwait"); + siginfo_t local_siginfo; + if (info == 0) + info = &local_siginfo; +#if defined (ACE_HAS_SIGTIMEDWAIT) + ACE_OSCALL_RETURN (::sigtimedwait (set, info, timeout), + int, -1); +#else + ACE_UNUSED_ARG (set); + ACE_UNUSED_ARG (info); + ACE_UNUSED_ARG (timeout); + ACE_NOTSUP_RETURN (-1); +#endif /* ACE_HAS_THREADS */ +} + ACE_INLINE void ACE_OS::thr_testcancel (void) { diff --git a/ace/config-linux-common.h b/ace/config-linux-common.h index 9d86285be19..3c44793d426 100644 --- a/ace/config-linux-common.h +++ b/ace/config-linux-common.h @@ -92,11 +92,11 @@ # error unsupported compiler in ace/config-linux-common.h #endif /* ! __GNUG__ && ! __KCC */ - // Completely common part :-) // Platform/compiler has the sigwait(2) prototype -#define ACE_HAS_SIGWAIT +# define ACE_HAS_SIGWAIT +# define ACE_HAS_SIGTIMEDWAIT #if !defined (ACE_DEFAULT_BASE_ADDR) # define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000) diff --git a/ace/config-linux-lxpthreads.h b/ace/config-linux-lxpthreads.h index a3a491587c5..57eca1a4662 100644 --- a/ace/config-linux-lxpthreads.h +++ b/ace/config-linux-lxpthreads.h @@ -57,8 +57,6 @@ #define ACE_LACKS_RWLOCK_T // JCEJ 12/23/96 #1 #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS // JCEJ 1/7-8/96 -#define ACE_HAS_SIGWAIT - #if defined(__GLIBC__) // Platform supports reentrant functions (i.e., all the POSIX *_r // functions). diff --git a/ace/config-linux-pthread.h b/ace/config-linux-pthread.h index 8fc27ea8eef..4581ecc1507 100644 --- a/ace/config-linux-pthread.h +++ b/ace/config-linux-pthread.h @@ -18,7 +18,6 @@ #define ACE_HAS_PTHREADS #define ACE_HAS_PTHREADS_STD #define ACE_LACKS_RWLOCK_T -#define ACE_HAS_SIGWAIT // If ACE doesn't compile due to the lack of these methods, please // send email to schmidt@cs.wustl.edu reporting this. // #define ACE_LACKS_CONDATTR_PSHARED diff --git a/ace/config-sunos5.5.h b/ace/config-sunos5.5.h index e944ca180ee..1cb33f0d61f 100644 --- a/ace/config-sunos5.5.h +++ b/ace/config-sunos5.5.h @@ -269,6 +269,7 @@ // . . . but only supports SCHED_OTHER scheduling policy # define ACE_HAS_ONLY_SCHED_OTHER # define ACE_HAS_SIGWAIT +# define ACE_HAS_SIGTIMEDWAIT // Compiler/platform has thread-specific storage # define ACE_HAS_THREAD_SPECIFIC_STORAGE |