|
Likewise Base Runtime Library
|
Thread pool API. More...
#include <lw/types.h>#include <lw/attrs.h>#include <signal.h>Typedefs | |
| typedef struct _LW_THREAD_POOL | LW_THREAD_POOL |
| Thread pool. More... | |
| typedef struct _LW_THREAD_POOL * | PLW_THREAD_POOL |
| typedef struct _LW_TASK_GROUP | LW_TASK_GROUP |
| Task group. More... | |
| typedef struct _LW_TASK_GROUP * | PLW_TASK_GROUP |
| typedef struct _LW_TASK | LW_TASK |
| Task. More... | |
| typedef struct _LW_TASK * | PLW_TASK |
| typedef struct _LW_THREAD_POOL_ATTRIBUTES | LW_THREAD_POOL_ATTRIBUTES |
| Thread pool attributes. More... | |
|
typedef struct _LW_THREAD_POOL_ATTRIBUTES * | PLW_THREAD_POOL_ATTRIBUTES |
| typedef enum _LW_TASK_EVENT_MASK * | PLW_TASK_EVENT_MASK |
| typedef struct _LW_WORK_ITEM | LW_WORK_ITEM |
| Work item structure. More... | |
| typedef struct _LW_WORK_ITEM * | PLW_WORK_ITEM |
| typedef LW_VOID(* | LW_TASK_FUNCTION )(LW_IN PLW_TASK pTask, LW_IN LW_PVOID pContext, LW_IN LW_TASK_EVENT_MASK WakeMask, LW_IN LW_OUT LW_TASK_EVENT_MASK *pWaitMask, LW_IN LW_OUT LW_LONG64 *pllTime) |
| Main task function. More... | |
| typedef LW_VOID(* | LW_WORK_ITEM_FUNCTION )(PLW_WORK_ITEM pWorkItem, PVOID pContext) |
| Work item function. More... | |
Functions | |
| LW_NTSTATUS | LwRtlCreateTask (LW_IN PLW_THREAD_POOL pPool, LW_OUT PLW_TASK *ppTask, LW_IN LW_OPTIONAL PLW_TASK_GROUP pGroup, LW_IN LW_TASK_FUNCTION pfnFunc, LW_IN LW_PVOID pContext) |
| Create a new task. More... | |
| LW_NTSTATUS | LwRtlCreateTaskGroup (LW_IN PLW_THREAD_POOL pPool, LW_OUT PLW_TASK_GROUP *ppGroup) |
| Create a new task group. More... | |
| LW_VOID | LwRtlReleaseTask (LW_IN LW_OUT PLW_TASK *ppTask) |
| Release task. More... | |
| LW_VOID | LwRtlFreeTaskGroup (LW_IN LW_OUT PLW_TASK_GROUP *ppGroup) |
| Free task group. More... | |
| LW_NTSTATUS | LwRtlSetTaskFd (LW_IN PLW_TASK pTask, LW_IN int Fd, LW_IN LW_TASK_EVENT_MASK Mask) |
| Configure file descriptor for wakeup events. More... | |
| LW_NTSTATUS | LwRtlQueryTaskFd (LW_IN PLW_TASK pTask, LW_IN int Fd, LW_OUT PLW_TASK_EVENT_MASK pMask) |
| Query file descriptor trigger mask. More... | |
| LW_NTSTATUS | LwRtlSetTaskUnixSignal (LW_IN PLW_TASK pTask, LW_IN int Sig, LW_IN LW_BOOLEAN bSubscribe) |
| Configure UNIX signal wakeup events. More... | |
| LW_BOOLEAN | LwRtlNextTaskUnixSignal (LW_IN PLW_TASK pTask, LW_OUT siginfo_t *pInfo) |
| Get next UNIX signal delivered to task. More... | |
| LW_VOID | LwRtlWakeTask (LW_IN PLW_TASK pTask) |
| Manually wake task. More... | |
| LW_VOID | LwRtlCancelTask (LW_IN PLW_TASK pTask) |
| Cancel task. More... | |
| LW_VOID | LwRtlWaitTask (LW_IN PLW_TASK pTask) |
| Wait for task completion. More... | |
| LW_VOID | LwRtlWakeTaskGroup (LW_IN PLW_TASK_GROUP pGroup) |
| Wake task group. More... | |
| LW_VOID | LwRtlCancelTaskGroup (LW_IN PLW_TASK_GROUP pGroup) |
| Cancel task group. More... | |
| LW_VOID | LwRtlWaitTaskGroup (LW_IN PLW_TASK_GROUP pGroup) |
| Wait for task group to complete. More... | |
| LW_NTSTATUS | LwRtlCreateWorkItem (LW_IN PLW_THREAD_POOL pPool, LW_OUT PLW_WORK_ITEM *ppWorkItem, LW_IN LW_WORK_ITEM_FUNCTION pfnFunc, LW_IN PVOID pContext) |
| Create work item. More... | |
| LW_VOID | LwRtlFreeWorkItem (LW_IN LW_OUT PLW_WORK_ITEM *ppWorkItem) |
| Free work item. More... | |
| LW_VOID | LwRtlScheduleWorkItem (LW_IN PLW_WORK_ITEM pWorkItem, LW_IN LW_SCHEDULE_FLAGS Flags) |
| Schedule blocking work item. More... | |
| LW_VOID | LwRtlWaitWorkItems (LW_IN PLW_THREAD_POOL pPool) |
| Wait for scheduled work items to complete. More... | |
| LW_NTSTATUS | LwRtlCreateThreadPoolAttributes (LW_OUT PLW_THREAD_POOL_ATTRIBUTES *ppAttrs) |
| Create thread pool attributes structure. More... | |
| LW_NTSTATUS | LwRtlSetThreadPoolAttribute (LW_IN LW_OUT PLW_THREAD_POOL_ATTRIBUTES pAttrs, LW_IN LW_THREAD_POOL_OPTION Option,...) |
| Set thread pool attribute. More... | |
| VOID | LwRtlFreeThreadPoolAttributes (LW_IN LW_OUT PLW_THREAD_POOL_ATTRIBUTES *ppAttrs) |
| Free thread pool attributes. More... | |
| LW_NTSTATUS | LwRtlCreateThreadPool (LW_OUT PLW_THREAD_POOL *ppPool, LW_IN LW_OPTIONAL PLW_THREAD_POOL_ATTRIBUTES pAttrs) |
| Create new thread pool. More... | |
| LW_VOID | LwRtlFreeThreadPool (LW_IN LW_OUT PLW_THREAD_POOL *ppPool) |
| Free thread pool. More... | |
| LW_NTSTATUS | LwRtlMain (LW_VOID) |
| Main signal loop. More... | |
| LW_VOID | LwRtlExitMain (LW_NTSTATUS Status) |
| Exit main loop. More... | |
| LW_NTSTATUS | LwRtlBlockSignals (VOID) |
| Block all signals in the current thread. More... | |