diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-02-16 11:51:27 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-02-16 11:51:27 +0000 |
commit | b60a970602a276854ca7c0bebd4f0863909872fb (patch) | |
tree | eee706675ed81ea826b4893c43c660d54d89e831 /sshfs.c | |
parent | 27c1b7b09d9d5cdd12f3fb90e1dd46fa185f3ab9 (diff) | |
download | sshfs-b60a970602a276854ca7c0bebd4f0863909872fb.tar sshfs-b60a970602a276854ca7c0bebd4f0863909872fb.tar.gz sshfs-b60a970602a276854ca7c0bebd4f0863909872fb.tar.bz2 sshfs-b60a970602a276854ca7c0bebd4f0863909872fb.zip |
fix
Diffstat (limited to 'sshfs.c')
-rw-r--r-- | sshfs.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1072,6 +1072,9 @@ static int start_processing_thread(void) { int err; pthread_t thread_id; + sigset_t oldset; + sigset_t newset; + if (sshfs.processing_thread_started) return 0; @@ -1081,12 +1084,19 @@ static int start_processing_thread(void) return -EIO; } + sigemptyset(&newset); + sigaddset(&newset, SIGTERM); + sigaddset(&newset, SIGINT); + sigaddset(&newset, SIGHUP); + sigaddset(&newset, SIGQUIT); + pthread_sigmask(SIG_BLOCK, &newset, &oldset); err = pthread_create(&thread_id, NULL, process_requests, NULL); if (err) { fprintf(stderr, "failed to create thread: %s\n", strerror(err)); return -EIO; } pthread_detach(thread_id); + pthread_sigmask(SIG_SETMASK, &oldset, NULL); sshfs.processing_thread_started = 1; return 0; } |