Process-in-Process
|
Functions | |
int | pip_suspend_and_enqueue (pip_task_queue_t *queue, pip_enqueue_callback_t callback, void *cbarg) |
suspend the curren task and enqueue it with lock More... | |
int | pip_suspend_and_enqueue_nolock (pip_task_queue_t *queue, pip_enqueue_callback_t callback, void *cbarg) |
suspend the curren task and enqueue it without locking the queue More... | |
int | pip_dequeue_and_resume (pip_task_queue_t *queue, pip_task_t *sched) |
dequeue a task and make it runnable More... | |
int | pip_dequeue_and_resume_nolock (pip_task_queue_t *queue, pip_task_t *sched) |
dequeue a task and make it runnable More... | |
int | pip_dequeue_and_resume_N (pip_task_queue_t *queue, pip_task_t *sched, int *np) |
dequeue multiple tasks and resume the execution of them More... | |
int | pip_dequeue_and_resume_N_nolock (pip_task_queue_t *queue, pip_task_t *sched, int *np) |
dequeue tasks and resume the execution of them More... | |
int pip_suspend_and_enqueue | ( | pip_task_queue_t * | queue, |
pip_enqueue_callback_t | callback, | ||
void * | cbarg | ||
) |
[in] | queue | A task queue |
[in] | callback | A callback function which is called immediately after the task is enqueued |
[in] | cbarg | An argument given to the callback function |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
int pip_suspend_and_enqueue_nolock | ( | pip_task_queue_t * | queue, |
pip_enqueue_callback_t | callback, | ||
void * | cbarg | ||
) |
pip_suspend_and_enqueue
, this function never locks the queue. It is the user's responsibility to lock the queue beofre calling this function and unlock the queue after calling this function. The callback function can be used for unlocking. [in] | queue | A task queue |
[in] | callback | A callback function which is called when enqueued |
[in] | cbarg | An argument given to the callback function |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
int pip_dequeue_and_resume | ( | pip_task_queue_t * | queue, |
pip_task_t * | sched | ||
) |
[in] | queue | A task queue |
[in] | sched | A task to specify a scheduling domain |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
ENOENT | queue is empty. |
int pip_dequeue_and_resume_nolock | ( | pip_task_queue_t * | queue, |
pip_task_t * | sched | ||
) |
sched
. If sched
is NULL, then the task is enqueued into the scheduling queue of calling task. [in] | queue | A task queue |
[in] | sched | A task to specify a scheduling domain |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
ENOENT | queue is empty. |
int pip_dequeue_and_resume_N | ( | pip_task_queue_t * | queue, |
pip_task_t * | sched, | ||
int * | np | ||
) |
sched
. If sched
is NULL, then the task is enqueued into the scheduling queue of calling task. [in] | queue | A task queue |
[in] | sched | A task to specify a scheduling domain |
[in,out] | np | A pointer to an interger which spcifies the number of tasks dequeued and actual number of tasks dequeued is returned. When PIP_TASK_ALL is specified, then all tasks in the queue will be resumed. |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
EINVAL | the specified number of tasks is invalid |
ENOENT | queue is empty. |
It is the user's responsibility to lock the queue beofre calling this function and unlock the queue after calling this function.
int pip_dequeue_and_resume_N_nolock | ( | pip_task_queue_t * | queue, |
pip_task_t * | sched, | ||
int * | np | ||
) |
sched
. If sched
is NULL, then the task is enqueued into the scheduling queue of calling task. [in] | queue | A task queue |
[in] | sched | A task to specify a scheduling domain |
[in,out] | np | A pointer to an interger which spcifies the number of tasks dequeued and actual number of tasks dequeued is returned. When PIP_TASK_ALL is specified, then all tasks in the queue will be resumed. |
EPERM | PiP library is not initialized yet |
EINVAL | queue is NULL |
EINVAL | the specified number of tasks is invalid |
ENOENT | queue is empty. |