Changeset adb49f58 in mainline for uspace/lib/libc


Ignore:
Timestamp:
2009-07-06T20:16:15Z (16 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
95bc57c
Parents:
0315679
Message:

Allow to determine whether a task returned value before terminatign.

Location:
uspace/lib/libc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/generic/task.c

    r0315679 radb49f58  
    149149}
    150150
    151 int task_wait(task_id_t id, int *retval)
     151int task_wait(task_id_t id, task_exit_t *texit, int *retval)
    152152{
    153         ipcarg_t rv;
     153        ipcarg_t te, rv;
    154154        int rc;
    155155
    156         rc = (int) async_req_2_1(PHONE_NS, NS_TASK_WAIT, LOWER32(id),
    157             UPPER32(id), &rv);
     156        rc = (int) async_req_2_2(PHONE_NS, NS_TASK_WAIT, LOWER32(id),
     157            UPPER32(id), &te, &rv);
     158        *texit = te;
    158159        *retval = rv;
    159160
  • uspace/lib/libc/include/task.h

    r0315679 radb49f58  
    4040typedef uint64_t task_id_t;
    4141
     42typedef enum {
     43        TASK_EXIT_NORMAL,
     44        TASK_EXIT_UNEXPECTED
     45} task_exit_t;
     46
    4247extern task_id_t task_get_id(void);
    4348extern int task_set_name(const char *name);
    4449extern task_id_t task_spawn(const char *path, char *const argv[]);
    45 extern int task_wait(task_id_t id, int *retval);
     50extern int task_wait(task_id_t id, task_exit_t *texit, int *retval);
    4651extern int task_retval(int val);
    4752
Note: See TracChangeset for help on using the changeset viewer.