diff options
| author | Albert Cervin <albert@acervin.com> | 2024-05-22 00:00:29 +0200 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2024-09-12 20:17:56 +0200 |
| commit | 405da5f84b072ea97b69359454899f45d92d24b6 (patch) | |
| tree | 20525b4bc44a5d8cbab4d62abe8413e174731db6 /src/dged/reactor-epoll.c | |
| parent | 4ab7e453e26afc6e9f4938c65f89463fbba9e267 (diff) | |
| download | dged-405da5f84b072ea97b69359454899f45d92d24b6.tar.gz dged-405da5f84b072ea97b69359454899f45d92d24b6.tar.xz dged-405da5f84b072ea97b69359454899f45d92d24b6.zip | |
WIP LSP client
This contains the start of an LSP client.
Nothing (except starting the LSP server) works
at the moment and the feature is disabled by default.
Diffstat (limited to 'src/dged/reactor-epoll.c')
| -rw-r--r-- | src/dged/reactor-epoll.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/dged/reactor-epoll.c b/src/dged/reactor-epoll.c index 4c83b49..beee7ec 100644 --- a/src/dged/reactor-epoll.c +++ b/src/dged/reactor-epoll.c @@ -22,15 +22,15 @@ struct events { uint32_t nevents; }; -struct reactor *reactor_create() { +struct reactor *reactor_create(void) { int epollfd = epoll_create1(0); if (epollfd == -1) { - perror("epoll_create1"); + return NULL; } int inotifyfd = inotify_init1(IN_NONBLOCK); if (inotifyfd == -1) { - perror("inotify_init1"); + return NULL; } struct reactor *r = (struct reactor *)calloc(1, sizeof(struct reactor)); @@ -55,7 +55,6 @@ uint32_t reactor_register_interest(struct reactor *reactor, int fd, ev.events |= (interest & WriteInterest) != 0 ? EPOLLOUT : 0; ev.data.fd = fd; if (epoll_ctl(reactor->epoll_fd, EPOLL_CTL_ADD, fd, &ev) < 0) { - perror("epoll_ctl"); return -1; } @@ -71,7 +70,7 @@ bool reactor_poll_event(struct reactor *reactor, uint32_t ev_id) { for (uint32_t ei = 0; ei < events->nevents; ++ei) { struct epoll_event *ev = &events->events[ei]; - if (ev->data.fd == ev_id) { + if ((uint32_t)ev->data.fd == ev_id) { return true; } } @@ -118,7 +117,8 @@ void reactor_update(struct reactor *reactor) { int nfds = epoll_wait(reactor->epoll_fd, events->events, 10, -1); if (nfds == -1) { - // TODO: log failure + events->nevents = 0; + message("failed update epoll reactor: %s", strerror(errno)); } events->nevents = nfds; |
