summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Rosenfeld <hans.rosenfeld@nexenta.com>2015-06-03 21:55:30 +0200
committerDan McDonald <danmcd@omniti.com>2015-06-19 14:05:47 -0400
commit057c620a8f2b46f09e91dfff7da884175a36b0a8 (patch)
treeb4604462c8f8b36845980d492d921ed7039e4d4e
parent3f2b8a52377413f4fdd822ed4aa046ba5eff81d9 (diff)
downloadillumos-joyent-057c620a8f2b46f09e91dfff7da884175a36b0a8.tar.gz
5996 libtopo ses module unload takes too long
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com> Reviewed by: Dan Fields <dan.fields@nexenta.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Dan McDonald <danmcd@omniti.com>
-rw-r--r--usr/src/lib/fm/topo/modules/common/ses/ses.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr/src/lib/fm/topo/modules/common/ses/ses.c b/usr/src/lib/fm/topo/modules/common/ses/ses.c
index d8d7b5e24b..835c6e7b9a 100644
--- a/usr/src/lib/fm/topo/modules/common/ses/ses.c
+++ b/usr/src/lib/fm/topo/modules/common/ses/ses.c
@@ -22,6 +22,7 @@
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2012 Milan Jurik. All rights reserved.
+ * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
*/
#include <alloca.h>
@@ -452,12 +453,15 @@ ses_contract_thread(void *arg)
ctid_t ctid;
struct pollfd fds;
int pollret;
+ sigset_t sigset;
ses_ct_print("start contract event thread");
efd = open64(CTFS_ROOT "/device/pbundle", O_RDONLY);
fds.fd = efd;
fds.events = POLLIN;
fds.revents = 0;
+ sigaddset(&sigset, sesthread.thr_sig);
+ pthread_sigmask(SIG_UNBLOCK, &sigset, NULL);
for (;;) {
/* check if we've been asked to exit */
(void) pthread_mutex_lock(&sesthread.mt);