From 84fa8af38d2eab0f72349abb8136811bd3e96570 Mon Sep 17 00:00:00 2001 From: Anand Avati Date: Tue, 24 Sep 2013 09:45:08 -0700 Subject: core: block unused signals in created threads Block all signal except those which are set for explicit handling in glusterfs_signals_setup(). Since thread spawning code in libglusterfs and xlators can get called from application threads when used through libgfapi, it is necessary to do this blocking. Change-Id: Ia320f80521a83d2edcda50b9ad414583a0175281 BUG: 1011662 Signed-off-by: Anand Avati Reviewed-on: http://review.gluster.org/5995 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Vijay Bellur --- xlators/storage/posix/src/posix-aio.c | 4 ++-- xlators/storage/posix/src/posix-helpers.c | 8 ++++---- xlators/storage/posix/src/posix.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'xlators/storage') diff --git a/xlators/storage/posix/src/posix-aio.c b/xlators/storage/posix/src/posix-aio.c index fad4a7df3..5eed7f1a0 100644 --- a/xlators/storage/posix/src/posix-aio.c +++ b/xlators/storage/posix/src/posix-aio.c @@ -490,8 +490,8 @@ posix_aio_init (xlator_t *this) goto out; } - ret = pthread_create (&priv->aiothread, NULL, - posix_aio_thread, this); + ret = gf_thread_create (&priv->aiothread, NULL, + posix_aio_thread, this); if (ret != 0) { io_destroy (priv->ctxp); goto out; diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index 2fa55eda0..e1f87f444 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -884,8 +884,8 @@ posix_spawn_janitor_thread (xlator_t *this) LOCK (&priv->lock); { if (!priv->janitor_present) { - ret = pthread_create (&priv->janitor, NULL, - posix_janitor_thread_proc, this); + ret = gf_thread_create (&priv->janitor, NULL, + posix_janitor_thread_proc, this); if (ret < 0) { gf_log (this->name, GF_LOG_ERROR, @@ -1227,8 +1227,8 @@ posix_spawn_health_check_thread (xlator_t *xl) if (priv->health_check_interval == 0) goto unlock; - ret = pthread_create (&priv->health_check, NULL, - posix_health_check_thread_proc, xl); + ret = gf_thread_create (&priv->health_check, NULL, + posix_health_check_thread_proc, xl); if (ret < 0) { priv->health_check_interval = 0; priv->health_check_active = _gf_false; diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index 3c7816cfb..650a2d3a7 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -4855,7 +4855,7 @@ init (xlator_t *this) pthread_cond_init (&_private->fsync_cond, NULL); INIT_LIST_HEAD (&_private->fsyncs); - ret = pthread_create (&_private->fsyncer, NULL, posix_fsyncer, this); + ret = gf_thread_create (&_private->fsyncer, NULL, posix_fsyncer, this); if (ret) { gf_log (this->name, GF_LOG_ERROR, "fsyncer thread" " creation failed (%s)", strerror (errno)); -- cgit