diff options
Diffstat (limited to 'winsup/cygwin/thread.cc')
-rw-r--r-- | winsup/cygwin/thread.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 9ca467577..d2a6704c3 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -3093,6 +3093,24 @@ pthread_sigmask (int operation, const sigset_t *set, sigset_t *old_set) return res; } +extern "C" int +pthread_sigqueue (pthread_t *thread, int sig, const union sigval value) +{ + siginfo_t si = {0}; + + if (!pthread::is_good_object (thread)) + return EINVAL; + if (!(*thread)->valid) + return ESRCH; + + si.si_signo = sig; + si.si_code = SI_QUEUE; + si.si_value = value; + si.si_pid = myself->pid; + si.si_uid = myself->uid; + return sig_send (NULL, si, (*thread)->cygtls); +} + /* ID */ extern "C" int |