mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-03 08:33:00 +00:00
The way thread.c is written, a caller who wishes to be able to cancel a
thread or avoid scheduling it twice must keep a reference to the thread.
Typically this is done with a long lived pointer whose value is checked
for null in order to know if the thread is currently scheduled. The
check-and-schedule idiom is so common that several wrapper macros in
thread.h existed solely to provide it.
This patch removes those macros and adds a new parameter to all
thread_add_* functions which is a pointer to the struct thread * to
store the result of a scheduling call. If the value passed is non-null,
the thread will only be scheduled if the value is null. This helps with
consistency.
A Coccinelle spatch has been used to transform code of the form:
if (t == NULL)
t = thread_add_* (...)
to the form
thread_add_* (..., &t)
The THREAD_ON macros have also been transformed to the underlying
thread.c calls.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| AUTHORS | ||
| COPYING | ||
| INSTALL | ||
| Makefile.am | ||
| NEWS | ||
| ospf_apiclient.c | ||
| ospf_apiclient.h | ||
| ospfclient.c | ||
| README | ||
For more information about this software check out: http://www.tik.ee.ethz.ch/~keller/ospfapi/