Lines Matching defs:pop

103 poll_check_ok(struct pollop *pop)
108 for (i = 0; i < pop->fd_count; ++i) {
109 idx = pop->idxplus1_by_fd[i]-1;
112 assert(pop->event_set[idx].fd == i);
113 if (pop->event_set[idx].events & POLLIN) {
114 ev = pop->event_r_back[idx];
119 if (pop->event_set[idx].events & POLLOUT) {
120 ev = pop->event_w_back[idx];
126 for (i = 0; i < pop->nfds; ++i) {
127 struct pollfd *pfd = &pop->event_set[i];
128 assert(pop->idxplus1_by_fd[pfd->fd] == i+1);
132 #define poll_check_ok(pop)
139 struct pollop *pop = arg;
141 poll_check_ok(pop);
146 nfds = pop->nfds;
147 res = poll(pop->event_set, nfds, msec);
172 what = pop->event_set[i].revents;
184 r_ev = pop->event_r_back[i];
188 w_ev = pop->event_w_back[i];
207 struct pollop *pop = arg;
216 poll_check_ok(pop);
217 if (pop->nfds + 1 >= pop->event_count) {
223 if (pop->event_count < 32)
226 tmp_event_count = pop->event_count * 2;
229 tmp_event_set = realloc(pop->event_set,
235 pop->event_set = tmp_event_set;
237 tmp_event_r_back = realloc(pop->event_r_back,
244 pop->event_r_back = tmp_event_r_back;
246 tmp_event_w_back = realloc(pop->event_w_back,
254 pop->event_w_back = tmp_event_w_back;
256 pop->event_count = tmp_event_count;
258 if (ev->ev_fd >= pop->fd_count) {
261 if (pop->fd_count < 32)
264 new_count = pop->fd_count * 2;
268 realloc(pop->idxplus1_by_fd, new_count * sizeof(int));
273 pop->idxplus1_by_fd = tmp_idxplus1_by_fd;
274 memset(pop->idxplus1_by_fd + pop->fd_count,
275 0, sizeof(int)*(new_count - pop->fd_count));
276 pop->fd_count = new_count;
279 i = pop->idxplus1_by_fd[ev->ev_fd] - 1;
281 pfd = &pop->event_set[i];
283 i = pop->nfds++;
284 pfd = &pop->event_set[i];
287 pop->event_w_back[i] = pop->event_r_back[i] = NULL;
288 pop->idxplus1_by_fd[ev->ev_fd] = i + 1;
294 pop->event_w_back[i] = ev;
298 pop->event_r_back[i] = ev;
300 poll_check_ok(pop);
312 struct pollop *pop = arg;
322 poll_check_ok(pop);
323 i = pop->idxplus1_by_fd[ev->ev_fd] - 1;
328 pfd = &pop->event_set[i];
331 pop->event_r_back[i] = NULL;
335 pop->event_w_back[i] = NULL;
337 poll_check_ok(pop);
343 pop->idxplus1_by_fd[ev->ev_fd] = 0;
345 --pop->nfds;
346 if (i != pop->nfds) {
351 memcpy(&pop->event_set[i], &pop->event_set[pop->nfds],
353 pop->event_r_back[i] = pop->event_r_back[pop->nfds];
354 pop->event_w_back[i] = pop->event_w_back[pop->nfds];
355 pop->idxplus1_by_fd[pop->event_set[i].fd] = i + 1;
358 poll_check_ok(pop);
365 struct pollop *pop = arg;
368 if (pop->event_set)
369 free(pop->event_set);
370 if (pop->event_r_back)
371 free(pop->event_r_back);
372 if (pop->event_w_back)
373 free(pop->event_w_back);
374 if (pop->idxplus1_by_fd)
375 free(pop->idxplus1_by_fd);
377 memset(pop, 0, sizeof(struct pollop));
378 free(pop);