Lines Matching refs:ep

95 	struct mtcp_epoll *ep;  in mtcp_epoll_create()  local
109 ep = (struct mtcp_epoll *)calloc(1, sizeof(struct mtcp_epoll)); in mtcp_epoll_create()
110 if (!ep) { in mtcp_epoll_create()
116 ep->usr_queue = CreateEventQueue(size); in mtcp_epoll_create()
117 if (!ep->usr_queue) { in mtcp_epoll_create()
119 free(ep); in mtcp_epoll_create()
123 ep->usr_shadow_queue = CreateEventQueue(size); in mtcp_epoll_create()
124 if (!ep->usr_shadow_queue) { in mtcp_epoll_create()
125 DestroyEventQueue(ep->usr_queue); in mtcp_epoll_create()
127 free(ep); in mtcp_epoll_create()
131 ep->mtcp_queue = CreateEventQueue(size); in mtcp_epoll_create()
132 if (!ep->mtcp_queue) { in mtcp_epoll_create()
133 DestroyEventQueue(ep->usr_shadow_queue); in mtcp_epoll_create()
134 DestroyEventQueue(ep->usr_queue); in mtcp_epoll_create()
136 free(ep); in mtcp_epoll_create()
142 mtcp->ep = ep; in mtcp_epoll_create()
143 epsocket->ep = ep; in mtcp_epoll_create()
145 if (pthread_mutex_init(&ep->epoll_lock, NULL)) { in mtcp_epoll_create()
146 DestroyEventQueue(ep->mtcp_queue); in mtcp_epoll_create()
147 DestroyEventQueue(ep->usr_shadow_queue); in mtcp_epoll_create()
148 DestroyEventQueue(ep->usr_queue); in mtcp_epoll_create()
150 free(ep); in mtcp_epoll_create()
153 if (pthread_cond_init(&ep->epoll_cond, NULL)) { in mtcp_epoll_create()
154 DestroyEventQueue(ep->mtcp_queue); in mtcp_epoll_create()
155 DestroyEventQueue(ep->usr_shadow_queue); in mtcp_epoll_create()
156 DestroyEventQueue(ep->usr_queue); in mtcp_epoll_create()
158 free(ep); in mtcp_epoll_create()
169 struct mtcp_epoll *ep; in CloseEpollSocket() local
176 ep = mtcp->smap[epid].ep; in CloseEpollSocket()
177 if (!ep) { in CloseEpollSocket()
182 DestroyEventQueue(ep->usr_queue); in CloseEpollSocket()
183 DestroyEventQueue(ep->usr_shadow_queue); in CloseEpollSocket()
184 DestroyEventQueue(ep->mtcp_queue); in CloseEpollSocket()
186 pthread_mutex_lock(&ep->epoll_lock); in CloseEpollSocket()
187 mtcp->ep = NULL; in CloseEpollSocket()
188 mtcp->smap[epid].ep = NULL; in CloseEpollSocket()
189 pthread_cond_signal(&ep->epoll_cond); in CloseEpollSocket()
190 pthread_mutex_unlock(&ep->epoll_lock); in CloseEpollSocket()
192 pthread_cond_destroy(&ep->epoll_cond); in CloseEpollSocket()
193 pthread_mutex_destroy(&ep->epoll_lock); in CloseEpollSocket()
194 free(ep); in CloseEpollSocket()
201 struct mtcp_epoll *ep, socket_map_t socket) in RaisePendingStreamEvents() argument
218 AddEpollEvent(ep, USR_SHADOW_EVENT_QUEUE, socket, MOS_EPOLLIN); in RaisePendingStreamEvents()
221 AddEpollEvent(ep, USR_SHADOW_EVENT_QUEUE, socket, MOS_EPOLLIN); in RaisePendingStreamEvents()
232 AddEpollEvent(ep, USR_SHADOW_EVENT_QUEUE, socket, MOS_EPOLLOUT); in RaisePendingStreamEvents()
245 struct mtcp_epoll *ep; in mtcp_epoll_ctl() local
276 ep = mtcp->smap[epid].ep; in mtcp_epoll_ctl()
277 if (!ep || (!event && op != MOS_EPOLL_CTL_DEL)) { in mtcp_epoll_ctl()
302 RaisePendingStreamEvents(mtcp, ep, socket); in mtcp_epoll_ctl()
309 pthread_mutex_unlock(&ep->epoll_lock); in mtcp_epoll_ctl()
320 RaisePendingStreamEvents(mtcp, ep, socket); in mtcp_epoll_ctl()
342 struct mtcp_epoll *ep; in mtcp_epoll_wait() local
371 ep = mtcp->smap[epid].ep; in mtcp_epoll_wait()
372 if (!ep || !events || maxevents <= 0) { in mtcp_epoll_wait()
377 ep->stat.calls++; in mtcp_epoll_wait()
381 while (ep->num_events == 0 && spin < SPIN_THRESH) { in mtcp_epoll_wait()
386 if (pthread_mutex_lock(&ep->epoll_lock)) { in mtcp_epoll_wait()
393 eq = ep->usr_queue; in mtcp_epoll_wait()
394 eq_shadow = ep->usr_shadow_queue; in mtcp_epoll_wait()
405 ep->stat.waits++; in mtcp_epoll_wait()
406 ep->waiting = TRUE; in mtcp_epoll_wait()
427 ret = pthread_cond_timedwait(&ep->epoll_cond, in mtcp_epoll_wait()
428 &ep->epoll_lock, &deadline); in mtcp_epoll_wait()
431 pthread_mutex_unlock(&ep->epoll_lock); in mtcp_epoll_wait()
438 ret = pthread_cond_wait(&ep->epoll_cond, &ep->epoll_lock); in mtcp_epoll_wait()
441 pthread_mutex_unlock(&ep->epoll_lock); in mtcp_epoll_wait()
447 ep->waiting = FALSE; in mtcp_epoll_wait()
452 pthread_mutex_unlock(&ep->epoll_lock); in mtcp_epoll_wait()
481 ep->stat.handled++; in mtcp_epoll_wait()
486 ep->stat.invalidated++; in mtcp_epoll_wait()
498 eq = ep->usr_shadow_queue; in mtcp_epoll_wait()
519 ep->stat.handled++; in mtcp_epoll_wait()
524 ep->stat.invalidated++; in mtcp_epoll_wait()
538 pthread_mutex_unlock(&ep->epoll_lock); in mtcp_epoll_wait()
544 AddEpollEvent(struct mtcp_epoll *ep, in AddEpollEvent() argument
553 if (!ep || !socket || !event) in AddEpollEvent()
556 ep->stat.issued++; in AddEpollEvent()
563 eq = ep->mtcp_queue; in AddEpollEvent()
565 eq = ep->usr_queue; in AddEpollEvent()
566 pthread_mutex_lock(&ep->epoll_lock); in AddEpollEvent()
568 eq = ep->usr_shadow_queue; in AddEpollEvent()
578 pthread_mutex_unlock(&ep->epoll_lock); in AddEpollEvent()
600 pthread_mutex_unlock(&ep->epoll_lock); in AddEpollEvent()
602 ep->stat.registered++; in AddEpollEvent()