]> git.llucax.com Git - software/libev.git/blobdiff - ev.pod
µikachu-power
[software/libev.git] / ev.pod
diff --git a/ev.pod b/ev.pod
index ba1eec4766f7789e80b55f1ebd667a5ee542f9e2..0ac76acb34bd9904cb91f6b43f63b95921681c67 100644 (file)
--- a/ev.pod
+++ b/ev.pod
@@ -333,8 +333,8 @@ need to use non-blocking I/O or other means to avoid blocking when no data
 
 Kqueue deserves special mention, as at the time of this writing, it
 was broken on all BSDs except NetBSD (usually it doesn't work with
-anything but sockets and pipes, except on Darwin, where of course its
-completely useless). For this reason its not being "autodetected"
+anything but sockets and pipes, except on Darwin, where of course it's
+completely useless). For this reason it's not being "autodetected"
 unless you explicitly specify it explicitly in the flags (i.e. using
 C<EVBACKEND_KQUEUE>).
 
@@ -409,7 +409,7 @@ calling this function, or cope with the fact afterwards (which is usually
 the easiest thing, you can just ignore the watchers and/or C<free ()> them
 for example).
 
-Not that certain global state, such as signal state, will not be freed by
+Note that certain global state, such as signal state, will not be freed by
 this function, and related watchers (such as signal and child watchers)
 would need to be stopped manually.
 
@@ -2252,8 +2252,8 @@ If defined to be C<1>, libev will try to detect the availability of the
 realtime clock option at compiletime (and assume its availability at
 runtime if successful). Otherwise no use of the realtime clock option will
 be attempted. This effectively replaces C<gettimeofday> by C<clock_get
-(CLOCK_REALTIME, ...)> and will not normally affect correctness. See tzhe note about libraries
-in the description of C<EV_USE_MONOTONIC>, though.
+(CLOCK_REALTIME, ...)> and will not normally affect correctness. See the
+note about libraries in the description of C<EV_USE_MONOTONIC>, though.
 
 =item EV_USE_SELECT
 
@@ -2447,6 +2447,31 @@ their default definitions. One possible use for overriding these is to
 avoid the C<struct ev_loop *> as first argument in all cases, or to use
 method calls instead of plain function calls in C++.
 
+=head2 EXPORTED API SYMBOLS
+
+If you need to re-export the API (e.g. via a dll) and you need a list of
+exported symbols, you can use the provided F<Symbol.*> files which list
+all public symbols, one per line:
+
+  Symbols.ev      for libev proper
+  Symbols.event   for the libevent emulation
+
+This can also be used to rename all public symbols to avoid clashes with
+multiple versions of libev linked together (which is obviously bad in
+itself, but sometimes it is inconvinient to avoid this).
+
+A sed comamnd like this will create wrapper C<#define>'s that you need to
+include before including F<ev.h>:
+
+   <Symbols.ev sed -e "s/.*/#define & myprefix_&/" >wrap.h
+
+This would create a file F<wrap.h> which essentially looks like this:
+
+   #define ev_backend     myprefix_ev_backend
+   #define ev_check_start myprefix_ev_check_start
+   #define ev_check_stop  myprefix_ev_check_stop
+   ...
+
 =head2 EXAMPLES
 
 For a real-world example of a program the includes libev