You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/07/23 19:51:11 UTC
cvs commit: apache-2.0/src/lib/apr/include apr_thread_proc.h
rbb 00/07/23 10:51:11
Modified: src/lib/apr/include apr_thread_proc.h
Log:
Update apr_threadproc.h to use ScanDoc
Revision Changes Path
1.40 +223 -411 apache-2.0/src/lib/apr/include/apr_thread_proc.h
Index: apr_thread_proc.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_thread_proc.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- apr_thread_proc.h 2000/07/08 11:15:49 1.39
+++ apr_thread_proc.h 2000/07/23 17:51:11 1.40
@@ -67,6 +67,10 @@
extern "C" {
#endif /* __cplusplus */
+/**
+ * @package APR Thread library
+ */
+
typedef enum {APR_SHELLCMD, APR_PROGRAM} ap_cmdtype_e;
typedef enum {APR_WAIT, APR_NOWAIT} ap_wait_how_e;
@@ -114,550 +118,358 @@
typedef void *(APR_THREAD_FUNC *ap_thread_start_t)(void *);
/* Thread Function definitions */
-
-/*
-
-=head1 ap_status_t ap_create_threadattr(ap_threadattr_t **new_attr, ap_pool_t *cont)
-
-B<Create and initialize a new threadattr variable>
- arg 1) The newly created threadattr.
- arg 2) The pool to use
-
-=cut
+/**
+ * Create and initialize a new threadattr variable
+ * @param new_attr The newly created threadattr.
+ * @param cont The pool to use
*/
ap_status_t ap_create_threadattr(ap_threadattr_t **new_attr, ap_pool_t *cont);
-
-/*
-
-=head1 ap_status_t ap_setthreadattr_detach(ap_threadattr_t *attr, ap_int32_t on)
-
-B<Set if newly created threads should be created in detach mode.>
- arg 1) The threadattr to affect
- arg 2) Thread detach state on or off
-
-=cut
+/**
+ * Set if newly created threads should be created in detach mode.
+ * @param attr The threadattr to affect
+ * @param on Thread detach state on or off
*/
ap_status_t ap_setthreadattr_detach(ap_threadattr_t *attr, ap_int32_t on);
-
-/*
-
-=head1 ap_status_t ap_getthreadattr_detach(ap_threadattr_t *attr)
-
-B<Get the detach mode for this threadattr.>
-
- arg 1) The threadattr to reference
-=cut
+/**
+ * Get the detach mode for this threadattr.
+ * @param attr The threadattr to reference
*/
ap_status_t ap_getthreadattr_detach(ap_threadattr_t *attr);
-
-/*
-
-=head1 ap_status_t ap_create_thread(ap_thread_t **new_thread, ap_threadattr_t *attr, ap_thread_start_t func, void *data, ap_pool_t *cont)
-
-B<Create a new thread of execution>
-
- arg 1) The newly created thread handle.
- arg 2) The threadattr to use to determine how to create the thread
- arg 3) The function to start the new thread in
- arg 4) Any data to be passed to the starting function
- arg 5) The pool to use
-=cut
+/**
+ * Create a new thread of execution
+ * @param new_thread The newly created thread handle.
+ * @param attr The threadattr to use to determine how to create the thread
+ * @param func The function to start the new thread in
+ * @param data Any data to be passed to the starting function
+ * @param cont The pool to use
*/
ap_status_t ap_create_thread(ap_thread_t **new_thread, ap_threadattr_t *attr,
ap_thread_start_t func, void *data,
ap_pool_t *cont);
-/*
-
-=head1 ap_status_t ap_thread_exit(ap_thread_t *thd, ap_status_t *retval)
-
-B<stop the current thread>
-
- arg 1) The thread to stop
- arg 2) The return value to pass back to any thread that cares
-
-=cut
+/**
+ * stop the current thread
+ * @param thd The thread to stop
+ * @param retval The return value to pass back to any thread that cares
*/
ap_status_t ap_thread_exit(ap_thread_t *thd, ap_status_t *retval);
-
-/*
-=head1 ap_status_t ap_thread_join(ap_status_t *retval, ap_thread_t *thd)
-
-B<block until the desired thread stops executing.>
-
- arg 1) The return value from the dead thread.
- arg 2) The thread to join
-
-=cut
+/**
+ * block until the desired thread stops executing.
+ * @param retval The return value from the dead thread.
+ * @param thd The thread to join
*/
ap_status_t ap_thread_join(ap_status_t *retval, ap_thread_t *thd);
-
-/*
-=head1 ap_status_t ap_thread_detach(ap_thread_t *thd)
-
-B<detach a thread>
-
- arg 1) The thread to detach
-
-=cut
+/**
+ * detach a thread
+ * @param thd The thread to detach
*/
ap_status_t ap_thread_detach(ap_thread_t *thd);
-
-/*
-
-=head1 ap_status_t ap_get_threaddata(void **data, const char *key, ap_thread_t *thread)
-B<Return the pool associated with the current thread.>
-
- arg 1) The user data associated with the thread.
- arg 2) The key to associate with the data
- arg 3) The currently open thread.
-
-=cut
+/**
+ * Return the pool associated with the current thread.
+ * @param data The user data associated with the thread.
+ * @param key The key to associate with the data
+ * @param thread The currently open thread.
*/
ap_status_t ap_get_threaddata(void **data, const char *key, ap_thread_t *thread);
-
-/*
-
-=head1 ap_status_t ap_set_threaddata(void *data, const char *key, ap_status_t (*cleanup) (void *), ap_thread_t *thread)
-B<Return the pool associated with the current thread.>
-
- arg 1) The user data to associate with the thread.
- arg 2) The key to use for associating the data with the tread
- arg 3) The cleanup routine to use when the thread is destroyed.
- arg 4) The currently open thread.
-
-=cut
+/**
+ * Return the pool associated with the current thread.
+ * @param data The user data to associate with the thread.
+ * @param key The key to use for associating the data with the tread
+ * @param cleanup The cleanup routine to use when the thread is destroyed.
+ * @param thread The currently open thread.
*/
ap_status_t ap_set_threaddata(void *data, const char *key,
ap_status_t (*cleanup) (void *),
ap_thread_t *thread);
-
-/*
-
-=head1 ap_status_t ap_create_thread_private(ap_threadkey_t **key, void (*dest)(void *), ap_pool_t *cont)
-
-B<Create and initialize a new thread private address space>
- arg 1) The thread private handle.
- arg 2) The destructor to use when freeing the private memory.
- arg 3) The pool to use
-
-=cut
+/**
+ * Create and initialize a new thread private address space
+ * @param key The thread private handle.
+ * @param dest The destructor to use when freeing the private memory.
+ * @param cont The pool to use
*/
ap_status_t ap_create_thread_private(ap_threadkey_t **key, void (*dest)(void *),
ap_pool_t *cont);
-
-/*
-
-=head1 ap_status_t ap_get_thread_private(void **new_mem, ap_threadkey_t *key)
-
-B<Get a pointer to the thread private memory>
- arg 1) The data stored in private memory
- arg 2) The handle for the desired thread private memory
-
-=cut
+/**
+ * Get a pointer to the thread private memory
+ * @param new_mem The data stored in private memory
+ * @param key The handle for the desired thread private memory
*/
ap_status_t ap_get_thread_private(void **new_mem, ap_threadkey_t *key);
-
-/*
-
-=head1 ap_status_t ap_set_thread_private(void *priv, ap_threadkey_t *key)
-
-B<Set the data to be stored in thread private memory>
-
- arg 1) The data to be stored in private memory
- arg 2) The handle for the desired thread private memory
-=cut
+/**
+ * Set the data to be stored in thread private memory
+ * @param priv The data to be stored in private memory
+ * @param key The handle for the desired thread private memory
*/
ap_status_t ap_set_thread_private(void *priv, ap_threadkey_t *key);
-
-/*
-
-=head1 ap_status_t ap_delete_thread_private(ap_threadkey_t *key)
-
-B<Free the thread private memory>
-
- arg 1) The handle for the desired thread private memory
-=cut
+/**
+ * Free the thread private memory
+ * @param key The handle for the desired thread private memory
*/
ap_status_t ap_delete_thread_private(ap_threadkey_t *key);
-/*
-
-=head1 ap_status_t ap_get_threadkeydata(void **data, const char *key, ap_threadkey_t *threadkey)
-
-B<Return the pool associated with the current threadkey.>
-
- arg 1) The user data associated with the threadkey.
- arg 2) The key associated with the data
- arg 3) The currently open threadkey.
-
-=cut
+/**
+ * Return the pool associated with the current threadkey.
+ * @param data The user data associated with the threadkey.
+ * @param key The key associated with the data
+ * @param threadkey The currently open threadkey.
*/
ap_status_t ap_get_threadkeydata(void **data, const char *key, ap_threadkey_t *threadkey);
-
-/*
-=head1 ap_status_t ap_set_threadkeydata(void *data, const char *key, ap_status_t (*cleanup) (void *), ap_threadkey_t *threadkey)
-
-B<Return the pool associated with the current threadkey.>
-
- arg 1) The data to set.
- arg 2) The key to associate with the data.
- arg 3) The cleanup routine to use when the file is destroyed.
- arg 4) The currently open threadkey.
-
-=cut
+/**
+ * Return the pool associated with the current threadkey.
+ * @param data The data to set.
+ * @param key The key to associate with the data.
+ * @param cleanup The cleanup routine to use when the file is destroyed.
+ * @param threadkey The currently open threadkey.
*/
ap_status_t ap_set_threadkeydata(void *data, const char *key,
ap_status_t (*cleanup) (void *),
ap_threadkey_t *threadkey);
/* Process Function definitions */
-/*
-
-=head1 ap_status_t ap_createprocattr_init(ap_procattr_t **new_attr, ap_pool_t *cont)
-B<Create and initialize a new procattr variable>
-
- arg 1) The newly created procattr.
- arg 2) The pool to use
+/**
+ * @package APR Process library
+ */
-=cut
+/**
+ * Create and initialize a new procattr variable
+ * @param new_attr The newly created procattr.
+ * @param cont The pool to use
*/
ap_status_t ap_createprocattr_init(ap_procattr_t **new_attr, ap_pool_t *cont);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_io(ap_procattr_t *attr, ap_int32_t in, ap_int32_t out, ap_int32_t err)
-
-B<Determine if any of stdin, stdout, or stderr should be linked to pipes when starting a child process.>
- arg 1) The procattr we care about.
- arg 2) Should stdin be a pipe back to the parent?
- arg 3) Should stdout be a pipe back to the parent?
- arg 4) Should stderr be a pipe back to the parent?
-
-=cut
+/**
+ * Determine if any of stdin, stdout, or stderr should be linked to pipes
+ * when starting a child process.
+ * @param attr The procattr we care about.
+ * @param in Should stdin be a pipe back to the parent?
+ * @param out Should stdout be a pipe back to the parent?
+ * @param err Should stderr be a pipe back to the parent?
*/
ap_status_t ap_setprocattr_io(ap_procattr_t *attr, ap_int32_t in,
ap_int32_t out, ap_int32_t err);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_childin(ap_procattr_t *attr, ap_file_t *child_in, ap_file_t *parent_in)
-
-B<Set the child_in and/or parent_in values to existing ap_file_t values.>
- arg 1) The procattr we care about.
- arg 2) ap_file_t value to use as child_in. Must be a valid file.
- arg 3) ap_file_t value to use as parent_in. Must be a valid file.
-
-B<NOTE>: This is NOT a required initializer function. This is
- useful if you have already opened a pipe (or multiple files)
- that you wish to use, perhaps persistently across mutiple
- process invocations - such as a log file. You can save some
- extra function calls by not creating your own pipe since this
- creates one in the process space for you.
-
-=cut
+/**
+ * Set the child_in and/or parent_in values to existing ap_file_t values.
+ * @param attr The procattr we care about.
+ * @param child_in ap_file_t value to use as child_in. Must be a valid file.
+ * @param parent_in ap_file_t value to use as parent_in. Must be a valid file.
+ * @tip This is NOT a required initializer function. This is
+ * useful if you have already opened a pipe (or multiple files)
+ * that you wish to use, perhaps persistently across mutiple
+ * process invocations - such as a log file. You can save some
+ * extra function calls by not creating your own pipe since this
+ * creates one in the process space for you.
*/
ap_status_t ap_setprocattr_childin(struct ap_procattr_t *attr, ap_file_t *child_in,
ap_file_t *parent_in);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_childout(ap_procattr_t *attr, ap_file_t *child_out, ap_file_t *parent_out)
-
-B<Set the child_out and parent_out values to existing ap_file_t values.>
- arg 1) The procattr we care about.
- arg 2) ap_file_t value to use as child_out. Must be a valid file.
- arg 3) ap_file_t value to use as parent_out. Must be a valid file.
-
-B<NOTE>: This is NOT a required initializer function. This is
- useful if you have already opened a pipe (or multiple files)
- that you wish to use, perhaps persistently across mutiple
- process invocations - such as a log file.
-
-=cut
+/**
+ * Set the child_out and parent_out values to existing ap_file_t values.
+ * @param attr The procattr we care about.
+ * @param child_out ap_file_t value to use as child_out. Must be a valid file.
+ * @param parent_out ap_file_t value to use as parent_out. Must be a valid file.
+ * @tip This is NOT a required initializer function. This is
+ * useful if you have already opened a pipe (or multiple files)
+ * that you wish to use, perhaps persistently across mutiple
+ * process invocations - such as a log file.
*/
ap_status_t ap_setprocattr_childout(struct ap_procattr_t *attr,
ap_file_t *child_out,
ap_file_t *parent_out);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_childerr(ap_procattr_t *attr, ap_file_t *child_err, ap_file_t *parent_err)
-B<Set the child_err and parent_err values to existing ap_file_t values.>
-
- arg 1) The procattr we care about.
- arg 2) ap_file_t value to use as child_err. Must be a valid file.
- arg 3) ap_file_t value to use as parent_err. Must be a valid file.
-
-B<NOTE>: This is NOT a required initializer function. This is
- useful if you have already opened a pipe (or multiple files)
- that you wish to use, perhaps persistently across mutiple
- process invocations - such as a log file.
-
-=cut
+/**
+ * Set the child_err and parent_err values to existing ap_file_t values.
+ * @param attr The procattr we care about.
+ * @param child_err ap_file_t value to use as child_err. Must be a valid file.
+ * @param parent_err ap_file_t value to use as parent_err. Must be a valid file.
+ * @tip This is NOT a required initializer function. This is
+ * useful if you have already opened a pipe (or multiple files)
+ * that you wish to use, perhaps persistently across mutiple
+ * process invocations - such as a log file.
*/
ap_status_t ap_setprocattr_childerr(struct ap_procattr_t *attr,
ap_file_t *child_err,
ap_file_t *parent_err);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_dir(ap_procattr_t *attr, constchar *dir)
-B<Set which directory the child process should start executing in.>
-
- arg 1) The procattr we care about.
- arg 2) Which dir to start in. By default, this is the same dir as
- the parent currently resides in, when the createprocess call
- is made.
-
-=cut
+/**
+ * Set which directory the child process should start executing in.
+ * @param attr The procattr we care about.
+ * @param dir Which dir to start in. By default, this is the same dir as
+ * the parent currently resides in, when the createprocess call
+ * is made.
*/
ap_status_t ap_setprocattr_dir(ap_procattr_t *attr, const char *dir);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_cmdtype(ap_procattr_t *attr, ap_cmdtype_e cmd)
-B<Set what type of command the child process will call.>
-
- arg 1) The procattr we care about.
- arg 2) The type of command. One of:
- APR_SHELLCMD -- Shell script
- APR_PROGRAM -- Executable program (default)
-
-=cut
+/**
+ * Set what type of command the child process will call.
+ * @param attr The procattr we care about.
+ * @param cmd The type of command. One of:
+ * <PRE>
+ * APR_SHELLCMD -- Shell script
+ * APR_PROGRAM -- Executable program (default)
+ * </PRE>
*/
ap_status_t ap_setprocattr_cmdtype(ap_procattr_t *attr, ap_cmdtype_e cmd);
-
-/*
-
-=head1 ap_status_t ap_setprocattr_detach(ap_procattr_t *attr, ap_int32_t detach)
-
-B<Determine if the chlid should start in detached state.>
- arg 1) The procattr we care about.
- arg 2) Should the child start in detached state? Default is no.
-
-=cut
+/**
+ * Determine if the chlid should start in detached state.
+ * @param attr The procattr we care about.
+ * @param detach Should the child start in detached state? Default is no.
*/
ap_status_t ap_setprocattr_detach(ap_procattr_t *attr, ap_int32_t detach);
#if APR_HAVE_STRUCT_RLIMIT
-/*
-
-=head1 ap_status_t ap_setprocattr_limit(ap_procattr_t *attr, ap_int32_t what, struct rlimit *limit)
-
-B<Set the Resource Utilization limits when starting a new process.>
-
- arg 1) The procattr we care about.
- arg 2) Which limit to set, one of:
- APR_LIMIT_CPU
- APR_LIMIT_MEM
- APR_LIMIT_NPROC
- arg 3) Value to set the limit to.
-
-=cut
+/**
+ * Set the Resource Utilization limits when starting a new process.
+ * @param attr The procattr we care about.
+ * @param what Which limit to set, one of:
+ * <PRE>
+ * APR_LIMIT_CPU
+ * APR_LIMIT_MEM
+ * APR_LIMIT_NPROC
+ * </PRE>
+ * @param limit Value to set the limit to.
*/
ap_status_t ap_setprocattr_limit(ap_procattr_t *attr, ap_int32_t what,
struct rlimit *limit);
#endif
#if APR_HAS_FORK
-/*
-
-=head1 ap_status_t ap_fork(ap_proc_t *proc, ap_pool_t *cont)
-
-B<This is currently the only non-portable call in APR. This executes a standard unix fork.>
-
- arg 1) The resulting process handle.
- arg 2) The pool to use.
-
-=cut
+/**
+ * This is currently the only non-portable call in APR. This executes
+ * a standard unix fork.
+ * @param proc The resulting process handle.
+ * @param cont The pool to use.
*/
ap_status_t ap_fork(ap_proc_t *proc, ap_pool_t *cont);
#endif
-
-/*
-
-=head1 ap_status_t ap_create_process(ap_proc_t *new_proc, const char *progname, char *const args[], char **env, ap_procattr_t *attr, ap_pool_t *cont)
-
-B<Create a new process and execute a new program within that process.>
-
- arg 1) The resulting process handle.
- arg 2) The program to run
- arg 3) the arguments to pass to the new program. The first one should
- be the program name.
- arg 4) The new environment ap_table_t for the new process. This should be a
- list of NULL-terminated strings.
- arg 5) the procattr we should use to determine how to create the new
- process
- arg 6) The pool to use.
-=cut
+/**
+ * Create a new process and execute a new program within that process.
+ * @param new_proc The resulting process handle.
+ * @param progname The program to run
+ * @param const_args the arguments to pass to the new program. The first
+ * one should be the program name.
+ * @param env The new environment ap_table_t for the new process. This
+ * should be a list of NULL-terminated strings.
+ * @param attr the procattr we should use to determine how to create the new
+ * process
+ * @param cont The pool to use.
*/
ap_status_t ap_create_process(ap_proc_t *new_proc, const char *progname,
char *const args[], char **env,
ap_procattr_t *attr, ap_pool_t *cont);
-/*
-
-=head1 ap_status_t ap_wait_proc(ap_proc_t *proc, ap_wait_how waithow)
-
-B<Wait for a child process to die>
-
- arg 1) The process handle that corresponds to the desired child process
- arg 2) How should we wait. One of:
- APR_WAIT -- block until the child process dies.
- APR_NOWAIT -- return immediately regardless of if the
- child is dead or not.
-
-B<NOTE>: The childs status is in the return code to this process. It is
- one of:
- APR_CHILD_DONE -- child is no longer running.
- APR_CHILD_NOTDONE -- child is still running.
-
-=cut
+/**
+ * Wait for a child process to die
+ * @param proc The process handle that corresponds to the desired child process
+ * @param waithow How should we wait. One of:
+ * <PRE>
+ * APR_WAIT -- block until the child process dies.
+ * APR_NOWAIT -- return immediately regardless of if the
+ * child is dead or not.
+ * </PRE>
+ * @tip The childs status is in the return code to this process. It is one of:
+ * <PRE>
+ * APR_CHILD_DONE -- child is no longer running.
+ * APR_CHILD_NOTDONE -- child is still running.
+ * </PRE>
*/
ap_status_t ap_wait_proc(ap_proc_t *proc, ap_wait_how_e waithow);
-
-/*
-
-=head1 ap_status_t ap_wait_all_procs(ap_proc_t *proc, ap_wait_t *status, ap_wait_how waithow, ap_pool_t *p)
-
-B<Wait for any current child process to die and return information about that child.>
-
- arg 1) Pointer to NULL on entry, will be filled out with child's
- information
- arg 2) The returned exit status of the child, if a child process dies
- On platforms that don't support obtaining this information, the
- status parameter will be returned as APR_ENOTIMPL.
- arg 3) How should we wait. One of:
- APR_WAIT -- block until the child process dies.
- APR_NOWAIT -- return immediately regardless of if the
- child is dead or not.
- arg 4) Pool to allocate child information out of.
-=cut
+/**
+ * Wait for any current child process to die and return information
+ * about that child.
+ * @param proc Pointer to NULL on entry, will be filled out with child's
+ * information
+ * @param status The returned exit status of the child, if a child process dies
+ * On platforms that don't support obtaining this information,
+ * the status parameter will be returned as APR_ENOTIMPL.
+ * @param waithow How should we wait. One of:
+ * <PRE>
+ * APR_WAIT -- block until the child process dies.
+ * APR_NOWAIT -- return immediately regardless of if the
+ * child is dead or not.
+ * </PRE>
+ * @param p Pool to allocate child information out of.
*/
ap_status_t ap_wait_all_procs(ap_proc_t *proc, ap_wait_t *status,
ap_wait_how_e waithow, ap_pool_t *p);
-/*
-
-=head1 ap_status_t ap_detach(void)
-
-B<Detach the process from the controlling terminal.>
-
-=cut
+/**
+ * Detach the process from the controlling terminal.
*/
ap_status_t ap_detach(void);
#if APR_HAS_OTHER_CHILD
-/*
-
-=head1 void ap_register_other_child(ap_proc_t *pid, void (*maintenance) (int reason, void *data, int status), void *data, ap_file_t *write_fd, ap_pool_t *p)
-
-B<Register an other_child -- a child which must be kept track of so that the program knows when it has dies or disappeared.>
-
- arg 1) pid is the pid of the child.
- arg 2) maintenance is a function that is invoked with a reason and the
- data pointer passed here.
- arg 3) The data to pass to the maintenance function.
- arg 4) An fd that is probed for writing. If it is ever unwritable
- then the maintenance is invoked with reason OC_REASON_UNWRITABLE.
- arg 5) The pool to use for allocating memory.
-
-=cut
+/**
+ * Register an other_child -- a child which must be kept track of so
+ * that the program knows when it has dies or disappeared.
+ * @param pid pid is the pid of the child.
+ * @param maintenance maintenance is a function that is invoked with a
+ * reason and the data pointer passed here.
+ * @param data The data to pass to the maintenance function.
+ * @param write_fd An fd that is probed for writing. If it is ever unwritable
+ * then the maintenance is invoked with reason
+ * OC_REASON_UNWRITABLE.
+ * @param p The pool to use for allocating memory.
*/
-/* XXX: it's not clear how write_fd can be made portable -- i think this
- * needs to take an ap_file_t, expecting the write_fd to be a pipe. -dean
- */
void ap_register_other_child(ap_proc_t *pid,
void (*maintenance) (int reason, void *, int status),
void *data, ap_file_t *write_fd, ap_pool_t *p);
-
-/*
-=head1 void ap_unregister_other_child(void *data)
-
-B<Stop watching the specified process.>
-
- arg 1) The data to pass to the maintenance function. This is
- used to find the process to unregister.
-
-B<NOTE>: Since this can be called by a maintenance function while we're
- scanning the other_children list, all scanners should protect
- themself by loading ocr->next before calling any maintenance
- function.
-
-=cut
+/**
+ * Stop watching the specified process.
+ * @param data The data to pass to the maintenance function. This is
+ * used to find the process to unregister.
+ * @tip Since this can be called by a maintenance function while we're
+ * scanning the other_children list, all scanners should protect
+ * themself by loading ocr->next before calling any maintenance
+ * function.
*/
void ap_unregister_other_child(void *data);
-
-/*
-=head1 ap_status_t ap_reap_other_child(ap_proc_t *pid, int status)
-
-B<Check on the specified process. If it is gone, call the maintenance function.>
-
- arg 1) The process to check.
-
-=cut
+/**
+ * Check on the specified process. If it is gone, call the maintenance
+ * function.
+ * @param pid The process to check.
+ * @param status The status to pass to the maintenance function.
*/
ap_status_t ap_reap_other_child(ap_proc_t *pid, int status);
-
-/*
-=head1 void ap_check_other_child(void)
-
-B<Loop through all registered other_children and call the appropriate maintenance function when necessary.>
-
-=cut
+/**
+ * Loop through all registered other_children and call the appropriate
+ * maintenance function when necessary.
*/
void ap_check_other_child(void);
-
-/*
-
-=head1 void ap_probe_writable_fds(void)
-
-B<Ensure all the registered write_fds are still writable, otherwise invoke the maintenance functions as appropriate.>
-=cut
+/**
+ * Ensure all the registered write_fds are still writable, otherwise
+ * invoke the maintenance functions as appropriate.
*/
void ap_probe_writable_fds(void);
#endif /* APR_HAS_OTHER_CHILD */
-
-/*
-
-=head1 ap_status_t ap_kill(ap_proc_t *proc, int sig)
-
-B<Terminate a process.>
-
- arg 1) The process to terminate.
- arg 2) How to kill the process.
-=cut
+/**
+ * Terminate a process.
+ * @param proc The process to terminate.
+ * @param sig How to kill the process.
*/
ap_status_t ap_kill(ap_proc_t *proc, int sig);
#ifdef __cplusplus