diff options
author | rmh <rmh@FreeBSD.org> | 2012-03-26 19:12:09 +0000 |
---|---|---|
committer | rmh <rmh@FreeBSD.org> | 2012-03-26 19:12:09 +0000 |
commit | 08e0b420dcedc5b64104d9d74e313882312dbe8e (patch) | |
tree | 80b88c4d9c41d576905f6192fe0fc653621ad850 /lib | |
parent | d37628cc987706fd89b1b0629b4539e32cd24ee2 (diff) | |
download | FreeBSD-src-08e0b420dcedc5b64104d9d74e313882312dbe8e.zip FreeBSD-src-08e0b420dcedc5b64104d9d74e313882312dbe8e.tar.gz |
Register signal 33 explicitly as reserved by real-time library, and
use it by its new name (SIGLIBRT) rather than internal definition
in librt (SIGSERVICE).
Approved by: davidxu, arch
Diffstat (limited to 'lib')
-rw-r--r-- | lib/librt/sigev_thread.c | 10 | ||||
-rw-r--r-- | lib/librt/sigev_thread.h | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/lib/librt/sigev_thread.c b/lib/librt/sigev_thread.c index 2277330..0246c0c 100644 --- a/lib/librt/sigev_thread.c +++ b/lib/librt/sigev_thread.c @@ -224,11 +224,11 @@ __sigev_get_sigevent(struct sigev_node *sn, struct sigevent *newevp, sigev_id_t id) { /* - * Build a new sigevent, and tell kernel to deliver SIGSERVICE + * Build a new sigevent, and tell kernel to deliver SIGLIBRT * signal to the new thread. */ newevp->sigev_notify = SIGEV_THREAD_ID; - newevp->sigev_signo = SIGSERVICE; + newevp->sigev_signo = SIGLIBRT; newevp->sigev_notify_thread_id = (lwpid_t)sn->sn_tn->tn_lwpid; newevp->sigev_value.sival_ptr = (void *)id; } @@ -279,7 +279,7 @@ __sigev_delete_node(struct sigev_node *sn) LIST_REMOVE(sn, sn_link); if (--sn->sn_tn->tn_refcount == 0) - _pthread_kill(sn->sn_tn->tn_thread, SIGSERVICE); + _pthread_kill(sn->sn_tn->tn_thread, SIGLIBRT); if (sn->sn_flags & SNF_WORKING) sn->sn_flags |= SNF_REMOVED; else @@ -326,7 +326,7 @@ sigev_thread_create(int usedefault) LIST_INSERT_HEAD(&sigev_threads, tn, tn_link); __sigev_list_unlock(); - sigfillset(&set); /* SIGSERVICE is masked. */ + sigfillset(&set); /* SIGLIBRT is masked. */ sigdelset(&set, SIGBUS); sigdelset(&set, SIGILL); sigdelset(&set, SIGFPE); @@ -378,7 +378,7 @@ sigev_service_loop(void *arg) __sigev_list_unlock(); sigemptyset(&set); - sigaddset(&set, SIGSERVICE); + sigaddset(&set, SIGLIBRT); for (;;) { ret = sigwaitinfo(&set, &si); diff --git a/lib/librt/sigev_thread.h b/lib/librt/sigev_thread.h index 7e30c2a..f94afa5 100644 --- a/lib/librt/sigev_thread.h +++ b/lib/librt/sigev_thread.h @@ -67,8 +67,6 @@ struct sigev_thread { #define SNF_REMOVED 0x02 #define SNF_SYNC 0x04 -#define SIGSERVICE (SIGTHR+1) - int __sigev_check_init(); struct sigev_node *__sigev_alloc(int, const struct sigevent *, struct sigev_node *, int); |