summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-08-29 21:43:55 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-08-29 21:43:55 +0000
commit823175ffcf86954500e7bcc23976c795796c9657 (patch)
tree121f9307bba33778483274c68e074ed25fbea4db /ace
parent3a3819c12432c667bdf416b1fdf143dd0dc8af11 (diff)
downloadATCD-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.h3
-rw-r--r--ace/OS.i20
-rw-r--r--ace/config-linux-common.h4
-rw-r--r--ace/config-linux-lxpthreads.h2
-rw-r--r--ace/config-linux-pthread.h1
-rw-r--r--ace/config-sunos5.5.h1
6 files changed, 26 insertions, 5 deletions
diff --git a/ace/OS.h b/ace/OS.h
index addf984fe2e..c9ba0d9a9bb 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -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);
diff --git a/ace/OS.i b/ace/OS.i
index 2f0ec9af3cf..c40cafae78b 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -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