30 lines
671 B
Diff
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;
|
||
|
}
|
||
|
|