Mercurial > dovecot > core-2.2
view src/lib/child-wait.h @ 14629:c93ca5e46a8a
Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
The non-obvious APIs where NULL parameter was changed to "" are
master_service_init() and auth_master_user_list_init().
These checks can currently be enabled only on a patched clang:
http://llvm.org/bugs/show_bug.cgi?id=6786
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 24 Jun 2012 00:52:57 +0300 |
parents | 3e8f847f68a4 |
children | d3db2ba15d00 |
line wrap: on
line source
#ifndef CHILD_WAIT_H #define CHILD_WAIT_H struct child_wait_status { struct child_wait *wait; pid_t pid; int status; }; typedef void child_wait_callback_t(const struct child_wait_status *status, void *context); struct child_wait * child_wait_new_with_pid(pid_t pid, child_wait_callback_t *callback, void *context) ATTR_NULL(3); #ifdef CONTEXT_TYPE_SAFETY # define child_wait_new_with_pid(pid, callback, context) \ ({(void)(1 ? 0 : callback((const struct child_wait_status *)0, \ context)); \ child_wait_new_with_pid(pid, (child_wait_callback_t *)callback, context); }) #else # define child_wait_new_with_pid(pid, callback, context) \ child_wait_new_with_pid(pid, (child_wait_callback_t *)callback, context) #endif #define child_wait_new(callback, context) \ child_wait_new_with_pid((pid_t)-1, callback, context) void child_wait_free(struct child_wait **wait); void child_wait_add_pid(struct child_wait *wait, pid_t pid); void child_wait_remove_pid(struct child_wait *wait, pid_t pid); void child_wait_init(void); void child_wait_deinit(void); #endif