annotate src/lib/child-wait.h @ 9354:687ac828b964 HEAD

lib-index: modseqs weren't tracked properly within session when changes were done.
author Timo Sirainen <tss@iki.fi>
date Tue, 01 Sep 2009 13:05:03 -0400
parents 3e8f847f68a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8306
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #ifndef CHILD_WAIT_H
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 #define CHILD_WAIT_H
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 struct child_wait_status {
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 struct child_wait *wait;
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 pid_t pid;
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 int status;
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 };
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 typedef void child_wait_callback_t(const struct child_wait_status *status,
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 void *context);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 struct child_wait *
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 child_wait_new_with_pid(pid_t pid, child_wait_callback_t *callback,
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 void *context);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 #ifdef CONTEXT_TYPE_SAFETY
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 # define child_wait_new_with_pid(pid, callback, context) \
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 ({(void)(1 ? 0 : callback((const struct child_wait_status *)0, \
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 context)); \
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 child_wait_new_with_pid(pid, (child_wait_callback_t *)callback, context); })
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22 #else
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 # define child_wait_new_with_pid(pid, callback, context) \
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 child_wait_new_with_pid(pid, (child_wait_callback_t *)callback, context)
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 #endif
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26 #define child_wait_new(callback, context) \
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 child_wait_new_with_pid((pid_t)-1, callback, context)
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 void child_wait_free(struct child_wait **wait);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 void child_wait_add_pid(struct child_wait *wait, pid_t pid);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 void child_wait_remove_pid(struct child_wait *wait, pid_t pid);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 void child_wait_init(void);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 void child_wait_deinit(void);
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35
3e8f847f68a4 Added API for waiting child processes.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 #endif