mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 04:14:19 +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> |
||
---|---|---|
bgpd | ||
debian | ||
doc | ||
eigrpd | ||
fpm | ||
gdb | ||
init | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
nhrpd | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pimd | ||
pkgsrc | ||
ports | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
snapcraft | ||
solaris | ||
tests | ||
tools | ||
vtysh | ||
watchfrr | ||
zebra | ||
.gitignore | ||
AUTHORS | ||
bootstrap.sh | ||
buildtest.sh | ||
ChangeLog | ||
common.am | ||
COMMUNITY.md | ||
configure.ac | ||
COPYING | ||
COPYING-LGPLv2.1 | ||
defaults.h | ||
Makefile.am | ||
NEWS | ||
README | ||
README.NetBSD | ||
render_md.py | ||
REPORTING-BUGS | ||
SERVICES | ||
stamp-h.in | ||
update-autotools |
FRRouting is free software that manages various IPv4 and IPv6 routing protocols. Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng, PIM-SM/MSDP and LDP as well as very early support for IS-IS. See the file REPORTING-BUGS to report bugs. Free RRRouting is free software. See the file COPYING for copying conditions. Public email discussion can be found at https://lists.frrouting.org/listinfo Our public slack channel is at https://frrouting.slack.com