OLD | NEW |
(Empty) | |
| 1 Libevent for NaCl |
| 2 ================= |
| 3 This is a port of libevent (an event notification library) to NaCl platform. |
| 4 For details visit : http://libevent.org . |
| 5 |
| 6 **The library is "functional" albeit with some issues, this documents lists and |
| 7 keep track of all those.** |
| 8 |
| 9 1. **Callbacks due to signals are NOT supported.** |
| 10 |
| 11 **Reason:** nacl_io do not support POSIX signals. |
| 12 |
| 13 **Details:** sigaction(...) and signal(...) are not(yet) implemented on |
| 14 NaCl.io,thus the calls evsignal_add,evsignal_del,evsignal_pending should |
| 15 be avoided,also event_add/event_del when passed with EV_SIGNAL will |
| 16 also fail. |
| 17 |
| 18 For details about these functions visit : |
| 19 http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html |
| 20 |
| 21 See /samples/hello-world.c for more details. |
| 22 To check if everything is working fine, run hello-world.nexe in nacl-devenv |
| 23 extension and point your browser to localhost:9995 and you should see "hello |
| 24 world". |
| 25 |
| 26 To debug/see implementation |
| 27 Look for /event.c, /signal.c and /evmap.c |
| 28 In /signal.c see function _evsig_set_handler and _evsig_restore_handler |
| 29 |
| 30 Typical function call |
| 31 event_add > event_add_internal > (if signal) evmap_signal_add > evsig_add |
| 32 |
| 33 2. **Post build tests are skipped.** |
| 34 |
| 35 **Reason:** setitimer and getitimer not available in newlib. |
| 36 |
| 37 3. **Build against glibc is not functional, ie either static linking fails or |
| 38 sometimes ELF header error pops up.** |
| 39 |
| 40 **Reason:** unknown (issue de-prioritized,toolchain disabled in pkg_info) |
| 41 |
| 42 **Notes** |
| 43 |
| 44 - Code in /samples/ (except hello-world.c) is not yet tested (or not yet |
| 45 modified to work on nacl platform) |
| 46 - Libevent uses socketpair(...) extensively, however the same is not |
| 47 implemented on nacl, thus custom implementation is used, to see details |
| 48 look for evutil_ersatz_socketpair(...) in /evutil.c |
OLD | NEW |