2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
5 Find out the status of a child task.
7 #include "exec_intern.h"
8 #include <proto/exec.h>
10 /*****************************************************************************
14 AROS_LH1(ULONG
, ChildStatus
,
17 AROS_LHA(APTR
, tid
, D0
),
20 struct ExecBase
*, SysBase
, 125, Exec
)
23 Return the status of a child task. This allows the Task to
24 determine whether a particular child task is still running or not.
27 tid -- The ID of the task to examine. Note that this is _NOT_
31 One of the CHILD_* values.
43 *****************************************************************************/
46 AROS_LIBBASE_EXT_DECL(struct ExecBase
*,SysBase
)
51 ULONG status
= CHILD_NOTFOUND
;
53 this = FindTask(NULL
);
54 if ((this->tc_Flags
& TF_ETASK
) == 0)
57 et
= this->tc_UnionETask
.tc_ETask
;
62 /* Search through the running tasks list */
63 ForeachNode(&et
->et_Children
, child
)
65 if (child
->et_UniqueID
== (ULONG
)tid
)
67 status
= CHILD_ACTIVE
;
72 ForeachNode(&et
->et_TaskMsgPort
.mp_MsgList
, child
)
74 if (child
->et_UniqueID
== (ULONG
)tid
)
76 status
= CHILD_EXITED
;