view src/lib/child-wait.h @ 9191:b340ecb24469 HEAD

Fix VPATH build of RQUOTA support. Some rpcgen derive #include "..." paths from the infile argument. This will be off for VPATH builds, as the generated rquota_xdr.c code will look in $(srcdir), but we'll generate the rquota.h file in $(builddir). Play safe and copy rquota.x to $(builddir) first. This fixes the build on openSUSE 11.1.
author Matthias Andree <matthias.andree@gmx.de>
date Tue, 07 Jul 2009 21:01:36 +0200
parents 3e8f847f68a4
children
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);
#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