[dm-devel] device-mapper/dmeventd dmeventd.c
agk at sourceware.org
agk at sourceware.org
Mon Jan 15 22:37:40 UTC 2007
CVSROOT: /cvs/dm
Module name: device-mapper
Changes by: agk at sourceware.org 2007-01-15 22:37:40
Modified files:
dmeventd : dmeventd.c
Log message:
reduce some if/else complexity
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/dmeventd/dmeventd.c.diff?cvsroot=dm&r1=1.33&r2=1.34
--- device-mapper/dmeventd/dmeventd.c 2007/01/15 22:05:50 1.33
+++ device-mapper/dmeventd/dmeventd.c 2007/01/15 22:37:40 1.34
@@ -1295,14 +1295,15 @@
_lock_mutex();
while ((l = list_first(&_thread_registry_unused))) {
thread = list_item(l, struct thread_status);
- if (thread->processing) {
- goto out; /* cleanup on the next round */
- }
+ if (thread->processing)
+ break; /* cleanup on the next round */
if (thread->status == DM_THREAD_RUNNING) {
thread->status = DM_THREAD_SHUTDOWN;
- goto out;
- } else if (thread->status == DM_THREAD_SHUTDOWN) {
+ break;
+ }
+
+ if (thread->status == DM_THREAD_SHUTDOWN) {
if (!thread->events) {
/* turn codes negative -- should we be returning this? */
ret = _terminate_thread(thread);
@@ -1315,22 +1316,26 @@
strerror(-ret));
stack;
}
- goto out;
- } else {
- list_del(l);
- syslog(LOG_ERR,
- "thread can't be on unused list unless !thread->events");
- thread->status = DM_THREAD_RUNNING;
- LINK_THREAD(thread);
- }
- } else if (thread->status == DM_THREAD_DONE) {
+ break;
+ }
+
+ list_del(l);
+ syslog(LOG_ERR,
+ "thread can't be on unused list unless !thread->events");
+ thread->status = DM_THREAD_RUNNING;
+ LINK_THREAD(thread);
+
+ continue;
+ }
+
+ if (thread->status == DM_THREAD_DONE) {
list_del(l);
pthread_join(thread->thread, NULL);
_lib_put(thread->dso_data);
_free_thread_status(thread);
}
}
- out:
+
_unlock_mutex();
}
More information about the dm-devel
mailing list