Lines Matching defs:kqop
80 struct kqop {
91 static void kqop_free(struct kqop *kqop);
127 struct kqop *kqueueop = NULL;
129 if (!(kqueueop = mm_calloc(1, sizeof(struct kqop))))
209 struct kqop *kqop)
217 if (n_changes >= kqop->changes_size - 1) {
221 if (kqop->changes_size > INT_MAX / 2 ||
222 (size_t)kqop->changes_size * 2 > EV_SIZE_MAX /
228 newsize = kqop->changes_size * 2;
229 newchanges = mm_realloc(kqop->changes,
235 kqop->changes = newchanges;
236 kqop->changes_size = newsize;
239 out_ch = &kqop->changes[n_changes++];
244 out_ch = &kqop->changes[n_changes++];
253 kq_grow_events(struct kqop *kqop, size_t new_size)
257 newresult = mm_realloc(kqop->events,
261 kqop->events = newresult;
262 kqop->events_size = new_size;
272 struct kqop *kqop = base->evbase;
273 struct kevent *events = kqop->events;
285 EVUTIL_ASSERT(kqop->changes);
286 n_changes = kq_build_changes_list(&base->changelist, kqop);
294 changes = kqop->changes;
295 kqop->changes = NULL;
306 if (kqop->events_size < n_changes) {
307 int new_size = kqop->events_size;
312 kq_grow_events(kqop, new_size);
313 events = kqop->events;
318 res = kevent(kqop->kq, changes, n_changes,
319 events, kqop->events_size, ts_p);
323 EVUTIL_ASSERT(kqop->changes == NULL);
324 kqop->changes = changes;
425 if (res == kqop->events_size) {
428 kq_grow_events(kqop, kqop->events_size * 2);
435 kqop_free(struct kqop *kqop)
437 if (kqop->changes)
438 mm_free(kqop->changes);
439 if (kqop->events)
440 mm_free(kqop->events);
441 if (kqop->kq >= 0 && kqop->pid == getpid())
442 close(kqop->kq);
443 memset(kqop, 0, sizeof(struct kqop));
444 mm_free(kqop);
450 struct kqop *kqop = base->evbase;
452 kqop_free(kqop);
459 struct kqop *kqop = base->evbase;
474 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
492 struct kqop *kqop = base->evbase;
508 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
527 struct kqop *kqop = base->evbase;
533 if (kqop->notify_event_added)
542 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) {
547 kqop->notify_event_added = 1;
558 struct kqop *kqop = base->evbase;
563 if (! kqop->notify_event_added)
572 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) {