I would like to point out that identifiers like "__ACCORD_H__" and "__list_add" do not fit to the expected naming conventions of the C/C++ language standard.
Identifiers like "event_handler_t" and "work_func_t" tamper with the POSIX name space.
Would you like to adjust your selection for unique names?