Lines Matching defs:kqop
79 struct kqop {
90 static void kqop_free(struct kqop *kqop);
126 struct kqop *kqueueop = NULL;
128 if (!(kqueueop = mm_calloc(1, sizeof(struct kqop))))
208 struct kqop *kqop)
216 if (n_changes >= kqop->changes_size - 1) {
220 if (kqop->changes_size > INT_MAX / 2 ||
221 (size_t)kqop->changes_size * 2 > EV_SIZE_MAX /
227 newsize = kqop->changes_size * 2;
228 newchanges = mm_realloc(kqop->changes,
234 kqop->changes = newchanges;
235 kqop->changes_size = newsize;
238 out_ch = &kqop->changes[n_changes++];
243 out_ch = &kqop->changes[n_changes++];
252 kq_grow_events(struct kqop *kqop, size_t new_size)
256 newresult = mm_realloc(kqop->events,
260 kqop->events = newresult;
261 kqop->events_size = new_size;
271 struct kqop *kqop = base->evbase;
272 struct kevent *events = kqop->events;
284 EVUTIL_ASSERT(kqop->changes);
285 n_changes = kq_build_changes_list(&base->changelist, kqop);
293 changes = kqop->changes;
294 kqop->changes = NULL;
305 if (kqop->events_size < n_changes) {
306 int new_size = kqop->events_size;
311 kq_grow_events(kqop, new_size);
312 events = kqop->events;
317 res = kevent(kqop->kq, changes, n_changes,
318 events, kqop->events_size, ts_p);
322 EVUTIL_ASSERT(kqop->changes == NULL);
323 kqop->changes = changes;
424 if (res == kqop->events_size) {
427 kq_grow_events(kqop, kqop->events_size * 2);
434 kqop_free(struct kqop *kqop)
436 if (kqop->changes)
437 mm_free(kqop->changes);
438 if (kqop->events)
439 mm_free(kqop->events);
440 if (kqop->kq >= 0 && kqop->pid == getpid())
441 close(kqop->kq);
442 memset(kqop, 0, sizeof(struct kqop));
443 mm_free(kqop);
449 struct kqop *kqop = base->evbase;
451 kqop_free(kqop);
458 struct kqop *kqop = base->evbase;
473 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
491 struct kqop *kqop = base->evbase;
507 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
526 struct kqop *kqop = base->evbase;
532 if (kqop->notify_event_added)
541 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) {
546 kqop->notify_event_added = 1;
557 struct kqop *kqop = base->evbase;
562 if (! kqop->notify_event_added)
571 if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) {