mirror of
https://github.com/troglobit/libuev.git
synced 2026-10-25 11:34:32 +00:00
Move caveat about using signalfd from README to API doc
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
b6b4afc11b
commit
16892b0673
2 files changed
+12
-13
No files matched your search
@@ -139,20 +139,21 @@ for stateful connections to be able to detect EOF.
|
||||
4. Exit the event loop with `uev_exit()`, possibly from a callback
|
||||
|
||||
**Note 1:** Make sure to use non-blocking stream I/O! Most hard to find
|
||||
bugs in event driven applications are due to sockets and files being
|
||||
opened in blocking mode. Be careful out there!
|
||||
bugs in event driven applications are due to sockets and files being
|
||||
opened in blocking mode. Be careful out there!
|
||||
|
||||
**Note 2:** When closing a descriptor or socket, make sure to first stop
|
||||
your watcher, if possible. This will help prevent any nasty side
|
||||
effects on your program.
|
||||
|
||||
**Note 3:** As mentioned above, a certain amount of care is needed when
|
||||
dealing with signalfd. If your application use `system()` you replace
|
||||
that with `fork()`, and then in the child, unblock all signals blocked
|
||||
by your parent process, before you run `exec()`. This because Linux
|
||||
does not unblock signals for your children, and neither does most (all?)
|
||||
C-libraries. See the [finit][6] project's implementation of `run()` for
|
||||
an example of this.
|
||||
**Note 3:** a certain amount of care is needed when dealing with APIs
|
||||
that employ signalfd. If your application use `system()` you replace
|
||||
that with `fork()`, and then in the child, unblock all signals blocked
|
||||
by your parent process, before you run `exec()`. This because Linux
|
||||
does not unblock signals for your children, and neither does most
|
||||
(all?) C-libraries. See the [finit][6] project's implementation of
|
||||
`run()` for an example of this. For more details on this issue, see
|
||||
[this article][4] at [lwn.net](http://lwn.net).
|
||||
|
||||
|
||||
Using -luev
|
||||
@@ -266,6 +267,7 @@ library) for [reference benchmarks][7] against [libevent][1] and
|
||||
|
||||
[1]: http://libevent.org
|
||||
[2]: http://software.schmorp.de/pkg/libev.html
|
||||
[4]: http://lwn.net/Articles/415684/
|
||||
[5]: https://github.com/troglobit/uftpd
|
||||
[6]: https://github.com/troglobit/finit
|
||||
[7]: http://libev.schmorp.de/bench.html
|
||||
|
||||
@@ -24,9 +24,7 @@ Introduction
|
||||
small size overhead impact of the library.
|
||||
|
||||
Experienced developers may appreciate that [libuEv][] is built on top of
|
||||
modern Linux APIs: epoll, timerfd and signalfd. Note however, a certain
|
||||
amount of care is needed when dealing with APIs that employ signalfd.
|
||||
For details, see [this article][4] at [lwn.net](http://lwn.net).
|
||||
modern Linux APIs: epoll, timerfd and signalfd.
|
||||
|
||||
|
||||
Documentation
|
||||
@@ -92,7 +90,6 @@ and its [kqueue][] interface are most welcome.
|
||||
[1]: http://libevent.org
|
||||
[2]: http://software.schmorp.de/pkg/libev.html
|
||||
[3]: http://unix.com/man-page/All/3x/XtDispatchEvent
|
||||
[4]: http://lwn.net/Articles/415684/
|
||||
[8]: http://code.google.com/p/libuevent/
|
||||
[9]: https://github.com/kazuho/picoev
|
||||
[Travis]: https://travis-ci.org/troglobit/libuev
|
||||
|
||||
Reference in new issue
Block a user