Beispiel #1
0
const char *taskName(TASK_ID task_id)
{
	struct wind_task *task;
	const char *name;

	task = get_wind_task_or_self(task_id);
	if (task == NULL)
		return NULL;

	name = task->name;
	put_wind_task(task);

	/*
	 * This is unsafe, but this service is terminally flawed by
	 * design anyway.
	 */
	return name;
}
Beispiel #2
0
STATUS errnoOfTaskSet(TASK_ID task_id, int status)
{
    struct wind_task *task;
    struct service svc;
    STATUS ret = OK;

    CANCEL_DEFER(svc);

    task = get_wind_task_or_self(task_id);
    if (task == NULL) {
        ret = ERROR;
        goto out;
    }

    *task->thobj.errno_pointer = status;
    put_wind_task(task);
out:
    CANCEL_RESTORE(svc);

    return ret;
}
Beispiel #3
0
STATUS errnoOfTaskGet(TASK_ID task_id)
{
    struct wind_task *task;
    struct service svc;
    STATUS status = OK;

    CANCEL_DEFER(svc);

    task = get_wind_task_or_self(task_id);
    if (task == NULL) {
        status = ERROR;
        goto out;
    }

    status = *task->thobj.errno_pointer;
    put_wind_task(task);
out:
    CANCEL_RESTORE(svc);

    return status;
}