]> git.llucax.com Git - software/libev.git/commitdiff
*** empty log message ***
authorroot <root>
Thu, 20 Dec 2007 07:12:57 +0000 (07:12 +0000)
committerroot <root>
Thu, 20 Dec 2007 07:12:57 +0000 (07:12 +0000)
ev.c
ev.h
ev.pod
ev_wrap.h
update_ev_wrap

diff --git a/ev.c b/ev.c
index a111beb558a42d1ae127f55a37ff0b0d71d9e849..32369d3de5e24a995a6a905fdfcbd0a4ec402375 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -2184,7 +2184,7 @@ ev_check_stop (EV_P_ ev_check *w)
 void noinline
 ev_embed_sweep (EV_P_ ev_embed *w)
 {
-  ev_loop (w->loop, EVLOOP_NONBLOCK);
+  ev_loop (w->other, EVLOOP_NONBLOCK);
 }
 
 static void
@@ -2205,7 +2205,7 @@ ev_embed_start (EV_P_ ev_embed *w)
     return;
 
   {
-    struct ev_loop *loop = w->loop;
+    struct ev_loop *loop = w->other;
     assert (("loop to be embedded is not embeddable", backend & ev_embeddable_backends ()));
     ev_io_init (&w->io, embed_cb, backend_fd, EV_READ);
   }
@@ -2322,6 +2322,10 @@ ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, vo
     }
 }
 
+#if EV_MULTIPLICITY
+  #include "ev_wrap.h"
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/ev.h b/ev.h
index 66bfde8b38ce07b20558eb7a95afd07e05f16ac3..fc374cb2a0b16726c37e9cbfa7aa28058bcd13d2 100644 (file)
--- a/ev.h
+++ b/ev.h
@@ -286,7 +286,7 @@ typedef struct ev_embed
   EV_WATCHER (ev_embed)
 
   ev_io io; /* private */
-  struct ev_loop *loop; /* ro */
+  struct ev_loop *other; /* ro */
 } ev_embed;
 #endif
 
@@ -442,7 +442,7 @@ void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revent
 #define ev_idle_set(ev)                     /* nop, yes, this is a serious in-joke */
 #define ev_prepare_set(ev)                  /* nop, yes, this is a serious in-joke */
 #define ev_check_set(ev)                    /* nop, yes, this is a serious in-joke */
-#define ev_embed_set(ev,loop_)              do { (ev)->loop = (loop_); } while (0)
+#define ev_embed_set(ev,other_)             do { (ev)->other = (other_); } while (0)
 #define ev_fork_set(ev)                     /* nop, yes, this is a serious in-joke */
 
 #define ev_io_init(ev,cb,fd,events)         do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0)
@@ -454,7 +454,7 @@ void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revent
 #define ev_idle_init(ev,cb)                 do { ev_init ((ev), (cb)); ev_idle_set ((ev)); } while (0)
 #define ev_prepare_init(ev,cb)              do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0)
 #define ev_check_init(ev,cb)                do { ev_init ((ev), (cb)); ev_check_set ((ev)); } while (0)
-#define ev_embed_init(ev,cb,loop)           do { ev_init ((ev), (cb)); ev_embed_set ((ev),(loop)); } while (0)
+#define ev_embed_init(ev,cb,other)          do { ev_init ((ev), (cb)); ev_embed_set ((ev),(other)); } while (0)
 #define ev_fork_init(ev,cb)                 do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0)
 
 #define ev_is_pending(ev)                   (0 + ((ev_watcher *)(void *)(ev))->pending) /* ro, true when watcher is waiting for callback invocation */
diff --git a/ev.pod b/ev.pod
index 0ac76acb34bd9904cb91f6b43f63b95921681c67..2fd1307b04d191edb00fe53bd7d7dc6812b1dade 100644 (file)
--- a/ev.pod
+++ b/ev.pod
@@ -1793,7 +1793,7 @@ Make a single, non-blocking sweep over the embedded loop. This works
 similarly to C<ev_loop (embedded_loop, EVLOOP_NONBLOCK)>, but in the most
 apropriate way for embedded loops.
 
-=item struct ev_loop *loop [read-only]
+=item struct ev_loop *other [read-only]
 
 The embedded event loop.
 
@@ -2142,7 +2142,7 @@ applications. Examples of applications that embed it include the Deliantra
 Game Server, the EV perl module, the GNU Virtual Private Ethernet (gvpe)
 and rxvt-unicode.
 
-The goal is to enable you to just copy the neecssary files into your
+The goal is to enable you to just copy the necessary files into your
 source directory without having to change even a single line in them, so
 you can easily upgrade by simply copying (or having a checked-out copy of
 libev somewhere in your source tree).
index f7e3bea71001115e373c0a1f34f16329bed43563..ba028aed1bd8699a4b13e403bda5758277c84591 100644 (file)
--- a/ev_wrap.h
+++ b/ev_wrap.h
@@ -1,10 +1,12 @@
 /* DO NOT EDIT, automatically generated by update_ev_wrap */
+#ifndef EV_WRAP_H
+#define EV_WRAP_H
 #define now_floor ((loop)->now_floor)
 #define mn_now ((loop)->mn_now)
 #define rtmn_diff ((loop)->rtmn_diff)
 #define backend ((loop)->backend)
 #define activecnt ((loop)->activecnt)
-#define loop_count ((loop)->loop_count);
+#define loop_count ((loop)->loop_count)
 #define backend_fudge ((loop)->backend_fudge)
 #define backend_modify ((loop)->backend_modify)
 #define backend_poll ((loop)->backend_poll)
 #define fs_fd ((loop)->fs_fd)
 #define fs_w ((loop)->fs_w)
 #define fs_hash ((loop)->fs_hash)
+#else
+#undef EV_WRAP_H
+#undef now_floor
+#undef mn_now
+#undef rtmn_diff
+#undef backend
+#undef activecnt
+#undef loop_count
+#undef backend_fudge
+#undef backend_modify
+#undef backend_poll
+#undef backend_fd
+#undef curpid
+#undef postfork
+#undef vec_ri
+#undef vec_ro
+#undef vec_wi
+#undef vec_wo
+#undef vec_max
+#undef polls
+#undef pollmax
+#undef pollcnt
+#undef pollidxs
+#undef pollidxmax
+#undef epoll_events
+#undef epoll_eventmax
+#undef kqueue_changes
+#undef kqueue_changemax
+#undef kqueue_changecnt
+#undef kqueue_events
+#undef kqueue_eventmax
+#undef port_events
+#undef port_eventmax
+#undef anfds
+#undef anfdmax
+#undef pendings
+#undef pendingmax
+#undef pendingcnt
+#undef fdchanges
+#undef fdchangemax
+#undef fdchangecnt
+#undef timers
+#undef timermax
+#undef timercnt
+#undef periodics
+#undef periodicmax
+#undef periodiccnt
+#undef idles
+#undef idlemax
+#undef idlecnt
+#undef idleall
+#undef prepares
+#undef preparemax
+#undef preparecnt
+#undef checks
+#undef checkmax
+#undef checkcnt
+#undef forks
+#undef forkmax
+#undef forkcnt
+#undef fs_fd
+#undef fs_w
+#undef fs_hash
+#endif
index 6e43069c8d5ae72092e923e3c6f42112c1e0ec85..adb083ab8c1fd499c5bbc157ab3711c978452926 100755 (executable)
@@ -1,10 +1,19 @@
 #!/bin/sh
 
 (
-   echo '#define VAR(name,decl) define name ((loop)->name)'
+   echo '#define VAR(name,decl) name'
    echo '#define EV_GENWRAP 1'
    cat ev_vars.h
-) | cc -E -o - - | sed -n -e 's/define/#define/p' | (
-   echo "/* DO NOT EDIT, automatically generated by update_ev_wrap */"
-   cat
-) > ev_wrap.h
+) | cc -E -o - - | perl -ne '
+   while (<>) {
+      push @syms, $1 if /(^\w+)/;
+   }
+   print "/* DO NOT EDIT, automatically generated by update_ev_wrap */\n",
+         "#ifndef EV_WRAP_H\n",
+         "#define EV_WRAP_H\n",
+         (map "#define $_ ((loop)->$_)\n", @syms),
+         "#else\n",
+         "#undef EV_WRAP_H\n",
+         (map "#undef $_\n", @syms),
+         "#endif\n";
+' >ev_wrap.h