Lines Matching refs:loop
53 static LE_STATUS CreateLoop_(EventLoop **loop, uint32_t maxevents, uint32_t timeout)
56 LE_STATUS ret = CreateEpollLoop(loop, maxevents, timeout);
57 LE_CHECK(ret == LE_SUCCESS, return ret, "Failed to create epoll loop");
59 (*loop)->maxevents = maxevents;
60 (*loop)->timeout = timeout;
61 (*loop)->stop = 0;
62 LoopMutexInit(&(*loop)->mutex);
64 OH_ListInit(&((*loop)->idleList));
74 ret = OH_HashMapCreate(&(*loop)->taskMap, &info);
75 LE_CHECK(ret == LE_SUCCESS, return ret, "failed to create hash map loop");
76 OH_ListInit(&((*loop)->timerList));
80 LE_STATUS CloseLoop(EventLoop *loop)
82 if (!loop->stop) {
85 OH_HashMapDestory(loop->taskMap, loop);
86 if (loop->close) {
87 loop->close(loop);
92 LE_STATUS ProcessEvent(const EventLoop *loop, int fd, uint32_t oper)
94 BaseTask *task = GetTaskByFd((EventLoop *)loop, fd);
96 task->handleEvent((LoopHandle)loop, (TaskHandle)task, oper);
98 loop->delEvent(loop, fd, EVENT_READ | EVENT_WRITE);
103 LE_STATUS AddTask(EventLoop *loop, BaseTask *task)
105 LoopMutexLock(&loop->mutex);
106 int ret = OH_HashMapAdd(loop->taskMap, &task->hashNode);
107 LoopMutexUnlock(&loop->mutex);
116 BaseTask *GetTaskByFd(EventLoop *loop, int fd)
119 LoopMutexLock(&loop->mutex);
121 HashNode *node = OH_HashMapGet(loop->taskMap, &id);
125 LoopMutexUnlock(&loop->mutex);
129 void DelTask(EventLoop *loop, BaseTask *task)
131 loop->delEvent(loop, task->taskId.fd,
133 LoopMutexLock(&loop->mutex);
134 OH_HashMapRemove(loop->taskMap, (TaskId *)task);
135 LoopMutexUnlock(&loop->mutex);
150 EventLoop *loop = NULL;
151 LE_STATUS ret = CreateLoop_(&loop, LOOP_MAX_SOCKET, DEFAULT_TIMEOUT);
152 *handle = (LoopHandle)loop;
159 EventLoop *loop = (EventLoop *)handle;
160 loop->runLoop(loop);
175 EventLoop *loop = (EventLoop *)handle;
176 loop->stop = 1;