diff options
Diffstat (limited to 'xlators/features/index/src/index.c')
-rw-r--r-- | xlators/features/index/src/index.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/xlators/features/index/src/index.c b/xlators/features/index/src/index.c index 5e723e5e4c6..ed89c02ae74 100644 --- a/xlators/features/index/src/index.c +++ b/xlators/features/index/src/index.c @@ -2460,13 +2460,6 @@ fini (xlator_t *this) priv = this->private; if (!priv) goto out; - - priv->down = _gf_true; - pthread_cond_broadcast (&priv->cond); - if (priv->thread) { - gf_thread_cleanup_xint (priv->thread); - priv->thread = 0; - } this->private = NULL; LOCK_DESTROY (&priv->lock); pthread_cond_destroy (&priv->cond); @@ -2478,11 +2471,8 @@ fini (xlator_t *this) if (priv->complete_watchlist) dict_unref (priv->complete_watchlist); GF_FREE (priv); - - if (this->local_pool) { - mem_pool_destroy (this->local_pool); - this->local_pool = NULL; - } + mem_pool_destroy (this->local_pool); + this->local_pool = NULL; out: return; } @@ -2552,6 +2542,13 @@ notify (xlator_t *this, int event, void *data, ...) if (!priv) return 0; + switch (event) { + case GF_EVENT_CLEANUP: + priv->down = _gf_true; + pthread_cond_broadcast (&priv->cond); + break; + } + ret = default_notify (this, event, data); return ret; } |