API.md: Document uev_run() failure modes.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2017-11-10 23:41:17 +01:00
1 parent f78348a92a
commit 412f04f413
1 file changed
+12 -1
+12 -1
View File
@@ -133,13 +133,24 @@ used to integrate [libuEv][] into another event loop.
In this example we set `flags` to none: In this example we set `flags` to none:
```C ```C
uev_run(&ctx, UEV_NONE); result = uev_run(&ctx, UEV_NONE);
``` ```
With `flags` set to `UEV_ONCE` the event loop returns as soon as it has With `flags` set to `UEV_ONCE` the event loop returns as soon as it has
served the first event. If `flags` is set to `UEV_ONCE | UEV_NONBLOCK` served the first event. If `flags` is set to `UEV_ONCE | UEV_NONBLOCK`
the event loop returns immediately if no event is available. the event loop returns immediately if no event is available.
```
if (result < 0)
errx(result, "Unrecoverable event loop error, error %d", result);
```
If the call to `uev_run()` fails you should notify the user somehow.
libuEv fails if there is an invalid pointer, if `uev_init()` was not
called, or recurring `epoll()` errors thare are impossible to recover
from should occur. This is true for individual watchers as well, in
particular signal and timer watchers which can fail in miserable ways.
**Note:** libuEv handles many types of errors, stream close, or peer **Note:** libuEv handles many types of errors, stream close, or peer
shutdowns internally, but also lets the callback run. This is useful shutdowns internally, but also lets the callback run. This is useful
for stateful connections to be able to detect EOF. for stateful connections to be able to detect EOF.