From 94777894a95044c5253ec081503085ab9947cfec Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 25 May 2019 19:48:33 -0500 Subject: Move notify.c into portability.c (collate the #ifdefs), move global variables into a structure passed as arguments, add x prefix to functions that can fail, add overflow test. --- lib/notify.c | 87 ------------------------------------------------------------ 1 file changed, 87 deletions(-) delete mode 100644 lib/notify.c (limited to 'lib/notify.c') diff --git a/lib/notify.c b/lib/notify.c deleted file mode 100644 index a7993e2a..00000000 --- a/lib/notify.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "toys.h" - -static char **paths; -static int *fds; -static int count; - -#ifdef __APPLE__ - -#include - -static int kq = -1; - -void notify_init(int max) -{ - if ((kq = kqueue()) == -1) perror_exit("kqueue"); - paths = xmalloc(max * sizeof(char *)); - fds = xmalloc(max * sizeof(int)); -} - -int notify_add(int fd, char *path) -{ - struct kevent event; - - EV_SET(&event, fd, EVFILT_VNODE, EV_ADD|EV_CLEAR, NOTE_WRITE, 0, NULL); - if (kevent(kq, &event, 1, NULL, 0, NULL) == -1 || event.flags & EV_ERROR) - return -1; - paths[count] = path; - fds[count++] = fd; - return 0; -} - -int notify_wait(char **path) -{ - struct kevent event; - int i; - - for (;;) { - if (kevent(kq, NULL, 0, &event, 1, NULL) != -1) { - // We get the fd for free, but still have to search for the path. - for (i=0; i - -static int ffd = -1; -static int *ids; - -void notify_init(int max) -{ - if ((ffd = inotify_init()) < 0) perror_exit("inotify_init"); - fds = xmalloc(max * sizeof(int)); - ids = xmalloc(max * sizeof(int)); - paths = xmalloc(max * sizeof(char *)); -} - -int notify_add(int fd, char *path) -{ - ids[count] = inotify_add_watch(ffd, path, IN_MODIFY); - if (ids[count] == -1) return -1; - paths[count] = path; - fds[count++] = fd; - return 0; -} - -int notify_wait(char **path) -{ - struct inotify_event ev; - int i; - - for (;;) { - if (sizeof(ev)!=read(ffd, &ev, sizeof(ev))) perror_exit("inotify"); - - for (i=0; i