From 105cdac2378d90c6160ee6b262310040eddcac75 Mon Sep 17 00:00:00 2001 From: acinonyx Date: Fri, 13 Jul 2012 16:35:46 +0000 Subject: [PATCH] [packages] quagga: Fix thread_cancel_event() git-svn-id: svn://svn.openwrt.org/openwrt/packages@32699 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/008-fix-thread_cancel_event.patch | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 net/quagga/patches/008-fix-thread_cancel_event.patch diff --git a/net/quagga/patches/008-fix-thread_cancel_event.patch b/net/quagga/patches/008-fix-thread_cancel_event.patch new file mode 100644 index 000000000..45f314d58 --- /dev/null +++ b/net/quagga/patches/008-fix-thread_cancel_event.patch @@ -0,0 +1,29 @@ +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; + } + -- 2.11.0