mirror_frr/tests
Quentin Young ffa2c8986d *: remove THREAD_ON macros, add nullity check
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>
2017-05-09 20:44:19 +00:00
..
bgpd *: add frr_init() infrastructure 2017-03-07 23:07:20 +01:00
helpers *: remove THREAD_ON macros, add nullity check 2017-05-09 20:44:19 +00:00
lib *: remove THREAD_ON macros, add nullity check 2017-05-09 20:44:19 +00:00
.gitignore tests: add pytest testrunners 2017-02-13 17:43:47 +01:00
Makefile.am tests: fix out-of-tree build 2017-02-13 17:44:03 +01:00
runtests.py tests: add pytest testrunners 2017-02-13 17:43:47 +01:00
test_lblmgr.c Implement generic label manager 2017-03-20 17:10:41 +01:00