[dm-devel] [PATCH] Don't exit() from library
Ritesh Raj Sarraf
rrs at debian.org
Tue Mar 11 06:10:11 UTC 2014
Also call pthread_attr_destroy() on thread creation failure
Signed-off-by: Ritesh Raj Sarraf <rrs at debian.org>
---
libmpathpersist/mpath_persist.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c
index bd30125..b74ce4e 100644
--- a/libmpathpersist/mpath_persist.c
+++ b/libmpathpersist/mpath_persist.c
@@ -585,11 +585,14 @@ int send_prout_activepath(char * dev, int rq_servact, int rq_scope,
rc = pthread_create(&thread, &attr, mpath_prout_pthread_fn, (void *)(¶m));
if (rc){
condlog (3, "%s: failed to create thread %d", dev, rc);
- exit(-1);
+ /* Destroy the thread attribute since we failed to create */
+ pthread_attr_destroy(&attr);
+ }
+ else {
+ /* Free attribute and wait for the other threads */
+ pthread_attr_destroy(&attr);
+ rc = pthread_join(thread, NULL);
}
- /* Free attribute and wait for the other threads */
- pthread_attr_destroy(&attr);
- rc = pthread_join(thread, NULL);
return (param.status);
}
--
1.9.0
More information about the dm-devel
mailing list