Lines Matching refs:task

22 int CheckTaskFlags(const BaseTask *task, uint32_t flags)

24 if (task == NULL) {
27 return ((task->flags & flags) == flags);
30 int GetSocketFd(const TaskHandle task)
32 BaseTask *stream = (BaseTask *)task;
41 BaseTask *task = (BaseTask *)calloc(1, size + info->userDataSize);
42 LE_CHECK(task != NULL, return NULL, "Failed to alloc for task");
43 HASHMAPInitNode(&task->hashNode);
45 task->flags = info->flags;
46 task->taskId.fd = fd;
47 LE_STATUS ret = AddTask((EventLoop *)loopHandle, task);
48 LE_CHECK(ret == LE_SUCCESS, free(task);
49 return NULL, "Failed to alloc for task");
50 task->userDataSize = info->userDataSize;
51 task->userDataOffset = size;
52 task->close = info->close;
53 return task;
56 void CloseTask(const LoopHandle loopHandle, BaseTask *task)
58 LE_CHECK(loopHandle != NULL && task != NULL, return, "Invalid parameters");
59 LE_LOGV("CloseTask %d", task->taskId.fd);
60 if (CheckTaskFlags(task, TASK_STREAM | TASK_CONNECT) ||
61 CheckTaskFlags(task, TASK_EVENT | TASK_ASYNC_EVENT)) {
62 StreamTask *stream = (StreamTask *)task;
69 if (task->close != NULL) {
70 task->close((TaskHandle)task);
86 int IsBufferEmpty(StreamTask *task)
88 LoopMutexLock(&task->mutex);
89 int ret = ListEmpty(task->buffHead);
90 LoopMutexUnlock(&task->mutex);
94 LE_Buffer *GetFirstBuffer(StreamTask *task)
96 LoopMutexLock(&task->mutex);
97 ListNode *node = task->buffHead.next;
99 if (node != &task->buffHead) {
102 LoopMutexUnlock(&task->mutex);
106 void AddBuffer(StreamTask *task, LE_Buffer *buffer)
108 LoopMutexLock(&task->mutex);
109 OH_ListAddTail(&task->buffHead, &buffer->node);
110 LoopMutexUnlock(&task->mutex);
113 LE_Buffer *GetNextBuffer(StreamTask *task, const LE_Buffer *next)
115 LoopMutexLock(&task->mutex);
119 node = task->buffHead.next;
123 if (node != &task->buffHead) {
126 LoopMutexUnlock(&task->mutex);
130 void FreeBuffer(const LoopHandle loop, StreamTask *task, LE_Buffer *buffer)
133 if (task == NULL) {
137 if (CheckTaskFlags((BaseTask *)task, TASK_STREAM | TASK_CONNECT) ||
138 CheckTaskFlags((BaseTask *)task, TASK_EVENT | TASK_ASYNC_EVENT)) {
139 LoopMutexLock(&task->mutex);
141 LoopMutexUnlock(&task->mutex);
173 LE_CHECK(taskHandle != NULL, return LE_INVALID_TASK, "Invalid task");
198 BaseTask *task = (BaseTask *)taskHandle;
199 if (task->innerClose != NULL) {
200 task->innerClose(loopHandle, taskHandle);
202 free(task);