packages/net/quagga/patches/008-fix-thread_cancel_event.patch
acinonyx 105cdac237 [packages] quagga: Fix thread_cancel_event()
git-svn-id: svn://svn.openwrt.org/openwrt/packages@32699 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-13 16:35:46 +00:00

30 lines
671 B
Diff

Index: quagga-0.99.21/lib/thread.c
===================================================================
--- quagga-0.99.21.orig/lib/thread.c
+++ quagga-0.99.21/lib/thread.c
@@ -916,6 +916,24 @@ thread_cancel_event (struct thread_maste
thread_add_unuse (m, t);
}
}
+
+ /* thread can be on the ready list too */
+ thread = m->ready.head;
+ while (thread)
+ {
+ struct thread *t;
+
+ t = thread;
+ thread = t->next;
+
+ if (t->arg == arg)
+ {
+ ret++;
+ thread_list_delete (&m->ready, t);
+ t->type = THREAD_UNUSED;
+ thread_add_unuse (m, t);
+ }
+ }
return ret;
}