1
0
mirror of https://github.com/janet-lang/janet synced 2025-02-24 12:10:00 +00:00

Remove duplicate code in kqueue event handling.

This commit is contained in:
Calvin Rose 2023-10-07 12:40:43 -07:00
parent 9256a66b76
commit 1418ada38f

View File

@ -1710,29 +1710,20 @@ void janet_loop1_impl(int has_timeout, JanetTimestamp timeout) {
int filt = events[i].filter; int filt = events[i].filter;
int has_err = events[i].flags & EV_ERROR; int has_err = events[i].flags & EV_ERROR;
int has_hup = events[i].flags & EV_EOF; int has_hup = events[i].flags & EV_EOF;
JanetFiber *rf = stream->read_fiber; for (int j = 0; j < 2; j++) {
JanetFiber *wf = stream->write_fiber; JanetFiber *f = j ? stream->read_fiber : stream->write_fiber;
if (rf) { if (!f) continue;
if (rf->ev_callback && has_err) { if (f->ev_callback && has_err) {
rf->ev_callback(rf, JANET_ASYNC_EVENT_ERR); f->ev_callback(f, JANET_ASYNC_EVENT_ERR);
} else { } else {
if (rf->ev_callback && (filt == EVFILT_READ)) { if (f->ev_callback && (filt == EVFILT_READ) && f == stream->read_fiber) {
rf->ev_callback(rf, JANET_ASYNC_EVENT_READ); f->ev_callback(f, JANET_ASYNC_EVENT_READ);
} }
if (rf->ev_callback && has_hup) { if (f->ev_callback && (filt == EVFILT_WRITE) && f == stream->write_fiber) {
rf->ev_callback(rf, JANET_ASYNC_EVENT_HUP); f->ev_callback(f, JANET_ASYNC_EVENT_WRITE);
} }
} if (f->ev_callback && has_hup) {
} f->ev_callback(f, JANET_ASYNC_EVENT_HUP);
if (wf) {
if (wf->ev_callback && has_err) {
wf->ev_callback(wf, JANET_ASYNC_EVENT_ERR);
} else {
if (wf->ev_callback && (filt == EVFILT_WRITE)) {
wf->ev_callback(wf, JANET_ASYNC_EVENT_WRITE);
}
if (wf->ev_callback && has_hup) {
wf->ev_callback(wf, JANET_ASYNC_EVENT_HUP);
} }
} }
} }