[libdispatch-dev] [PATCH] conditional support for NOTE_REVOKE

Mark Heily mark at heily.com
Sun Nov 15 16:57:16 PST 2009


Linux does not have the revoke(2) syscall, so libkqueue does not define 
NOTE_REVOKE and will probably never support it. The following patch allows 
libdispatch to conditionally support NOTE_REVOKE.

  - Mark


Index: configure.ac
===================================================================
--- configure.ac	(revision 162)
+++ configure.ac	(working copy)
@@ -185,7 +185,7 @@
  #
  AC_CHECK_DECLS([CLOCK_UPTIME, CLOCK_MONOTONIC, CLOCK_REALTIME], [], [],
    [[#include <time.h>]])
-AC_CHECK_DECLS([EVFILT_LIO, EVFILT_SESSION, NOTE_NONE, NOTE_REAP, 
NOTE_SIGNAL], [], [],
+AC_CHECK_DECLS([EVFILT_LIO, EVFILT_SESSION, NOTE_NONE, NOTE_REAP, 
NOTE_REVOKE, NOTE_SIGNAL], [], [],
    [[#include <sys/event.h>]])
  AC_CHECK_DECLS([FD_COPY], [], [], [[#include <sys/select.h>]])
  AC_CHECK_DECLS([SIGEMT], [], [], [[#include <signal.h>]])
Index: src/source_kevent.c
===================================================================
--- src/source_kevent.c	(revision 162)
+++ src/source_kevent.c	(working copy)
@@ -693,7 +693,10 @@
  const struct dispatch_source_type_s _dispatch_source_type_vnode = {
  	.opaque = (void *)&_dispatch_source_type_vnode_ke,
  	.mask = NOTE_DELETE|NOTE_WRITE|NOTE_EXTEND|NOTE_ATTRIB|NOTE_LINK|
-	    NOTE_RENAME|NOTE_REVOKE
+	    NOTE_RENAME
+#if HAVE_DECL_NOTE_REVOKE
+        |NOTE_REVOKE
+#endif
  #if HAVE_DECL_NOTE_NONE
  	    |NOTE_NONE
  #endif



More information about the libdispatch-dev mailing list