summaryrefslogtreecommitdiff
path: root/lib/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/thread.c')
-rw-r--r--lib/thread.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/thread.c b/lib/thread.c
index c3613b5b0e..9eac9b410a 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -1354,9 +1354,9 @@ static void do_thread_cancel(struct thread_master *master)
struct thread_list_head *list = NULL;
struct thread **thread_array = NULL;
struct thread *thread;
-
struct cancel_req *cr;
struct listnode *ln;
+
for (ALL_LIST_ELEMENTS_RO(master->cancel_req, ln, cr)) {
/*
* If this is an event object cancellation, search
@@ -1379,6 +1379,9 @@ static void do_thread_cancel(struct thread_master *master)
if (!thread)
continue;
+ list = NULL;
+ thread_array = NULL;
+
/* Determine the appropriate queue to cancel the thread from */
switch (thread->type) {
case THREAD_READ: