Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

sunos: check that event ports supports fs watching

  • Loading branch information...
commit 224584c53e614d894efdd0d365bdec2130ed2e48 1 parent 26806e2
@bnoordhuis bnoordhuis authored
View
8 include/uv-private/uv-unix.h
@@ -204,10 +204,14 @@ typedef void* uv_lib_t;
#include <sys/port.h>
#include <port.h>
-#define UV_FS_EVENT_PRIVATE_FIELDS \
+#ifdef PORT_SOURCE_FILE
+# define UV_FS_EVENT_PRIVATE_FIELDS \
ev_io event_watcher; \
uv_fs_event_cb cb; \
- file_obj_t fo; \
+ file_obj_t fo;
+#else /* !PORT_SOURCE_FILE */
+# define UV_FS_EVENT_PRIVATE_FIELDS
+#endif
#else
View
14 src/unix/internal.h
@@ -27,6 +27,12 @@
#include <stddef.h> /* offsetof */
+#undef HAVE_FUTIMES
+#undef HAVE_PIPE2
+#undef HAVE_ACCEPT4
+#undef HAVE_KQUEUE
+#undef HAVE_PORTS_FS
+
#if defined(__linux__)
#include <linux/version.h>
@@ -49,6 +55,14 @@
#endif /* __linux__ */
+#if defined(__sun)
+# include <sys/port.h>
+# include <port.h>
+# ifdef PORT_SOURCE_FILE
+# define HAVE_PORTS_FS 1
+# endif
+#endif /* __sun */
+
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun)
# define HAVE_FUTIMES 1
#endif
View
26 src/unix/sunos.c
@@ -30,10 +30,13 @@
#include <sys/loadavg.h>
#include <sys/time.h>
-#include <sys/port.h>
#include <unistd.h>
#include <kstat.h>
-#include <port.h>
+
+#if HAVE_PORTS_FS
+# include <sys/port.h>
+# include <port.h>
+#endif
uint64_t uv_hrtime() {
@@ -85,6 +88,7 @@ void uv_loadavg(double avg[3]) {
}
+#if HAVE_PORTS_FS
static void uv__fs_event_rearm(uv_fs_event_t *handle) {
if (port_associate(handle->fd,
PORT_SOURCE_FILE,
@@ -173,3 +177,21 @@ void uv__fs_event_destroy(uv_fs_event_t* handle) {
handle->filename = NULL;
handle->fo.fo_name = NULL;
}
+
+#else /* !HAVE_PORTS_FS */
+
+int uv_fs_event_init(uv_loop_t* loop,
+ uv_fs_event_t* handle,
+ const char* filename,
+ uv_fs_event_cb cb,
+ int flags) {
+ uv__set_sys_error(loop, ENOSYS);
+ return -1;
+}
+
+
+void uv__fs_event_destroy(uv_fs_event_t* handle) {
+ assert(0 && "unreachable"); /* should never be called */
+}
+
+#endif /* HAVE_PORTS_FS */
Please sign in to comment.
Something went wrong with that request. Please try again.