NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | RETURN VALUES | ATTRIBUTES | SEE ALSO | RESTRICTIONS
#include <await.h>int awaits(const KnCap * cactorcap, int * statusp);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
The awaits() call blocks the caller until the process identified by cactorcap (see afexec(2K) ) terminates or stops due to tracing.
If statusp is not NULL , the status of the process designated by cactorcap is stored in the location pointed to by statusp upon successful return from awaits() . It indicates why the process terminated or stopped.
The
IS_EXIT_EVT
,
GET_EXIT_EVT
,
IS_KILL_EVT
,
GET_KILL_EVT
,
IS_STP_EVT
and
GET_STP_EVT
macros take a
status
argument returned
by
awaits()
in the location pointed to by
statusp
.
If the process terminated due to a call to
_exit(2K)
,
IS_EXIT_EVT
will be true (
1
) and
GET_EXIT_EVT
will be the low-order byte of the
argument the process passed to
_exit()
.
If the process terminated due to an asynchronous event, such as an
exception or a call to
actorDelete(2K)
,
IS_KILL_EVT
will be true (
1
).
If the process was being debugged and caught an exception,
IS_STP_EVT
will be true (
1
).
In both of these cases
GET_KILL_EVT
or
GET_STP_EVT
will be the number of
the event which caused the process to terminate or stop.
The following events are valid:
(illegal instruction exception)
(breakpoint exception)
(floating point exception)
(memory protection exception)
(process killed by akill(2K) )
(process killed by actorDelete(2K) )
The await() call performs the same function as awaits() , and should be used when statusp is a NULL pointer.
Both awaits() and await() return the pid of the process which terminated or stopped due to tracing; otherwise they return -1 and set errno to indicate one of the following error conditions:
cactorcap refers to the calling process.
cactorcap doesn't designate a valid process.
cactorcap or statusp points to an illegal address.
The calling thread was aborted before the execution of the process was terminated.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Deprecated : Replaced by wait(2POSIX) |
It is not currently possible to distinguish between terminated processes and invalid actor capabilities.
NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | RETURN VALUES | ATTRIBUTES | SEE ALSO | RESTRICTIONS