mirror of
https://github.com/troglobit/libuev.git
synced 2026-10-23 11:24:34 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cebe66e8a4 | ||
|
|
dd651ae791 | ||
|
|
a528405258 | ||
|
|
70f04c10e1 | ||
|
|
e3dca8255d | ||
|
|
dbf8c0dae2 | ||
|
|
f75b1d5080 |
No files matched your search
@@ -69,7 +69,7 @@ int uev_io_set (uev_t *w, int fd, int events);
|
|||||||
int uev_io_start (uev_t *w);
|
int uev_io_start (uev_t *w);
|
||||||
int uev_io_stop (uev_t *w);
|
int uev_io_stop (uev_t *w);
|
||||||
|
|
||||||
/* Timer watcher: schedule a relative timer, timeout and period in milliseconds */
|
/* Timer watcher: schedule a relative timer, timeout (must be non-zero) and period in milliseconds */
|
||||||
int uev_timer_init (uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg, int timeout, int period);
|
int uev_timer_init (uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg, int timeout, int period);
|
||||||
int uev_timer_set (uev_t *w, int timeout, int period); /* Change timeout or period */
|
int uev_timer_set (uev_t *w, int timeout, int period); /* Change timeout or period */
|
||||||
int uev_timer_start (uev_t *w); /* Restart a stopped timer */
|
int uev_timer_start (uev_t *w); /* Restart a stopped timer */
|
||||||
|
|||||||
+12
-1
@@ -3,6 +3,16 @@ Change Log
|
|||||||
|
|
||||||
All notable changes to the project are documented in this file.
|
All notable changes to the project are documented in this file.
|
||||||
|
|
||||||
|
[v2.1.1][] - 2018-01-28
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix use after free in main event loop if watcher deletes itself in
|
||||||
|
the callback. I.e., the callback must be the last action for the
|
||||||
|
watcher in the event loop.
|
||||||
|
- Doc timer example fix by @tisyang
|
||||||
|
- Doc timer updates, non-zero timeout required
|
||||||
|
|
||||||
|
|
||||||
[v2.1.0][] - 2017-11-14
|
[v2.1.0][] - 2017-11-14
|
||||||
-----------------------
|
-----------------------
|
||||||
@@ -326,7 +336,8 @@ v0.0.1 - 2012-03-17
|
|||||||
Lua users mailing list.
|
Lua users mailing list.
|
||||||
|
|
||||||
|
|
||||||
[UNRELEASED]: https://github.com/troglobit/libuev/compare/v2.1.0...HEAD
|
[UNRELEASED]: https://github.com/troglobit/libuev/compare/v2.1.1...HEAD
|
||||||
|
[v2.1.1]: https://github.com/troglobit/libuev/compare/v2.1.0...v2.1.1
|
||||||
[v2.1.0]: https://github.com/troglobit/libuev/compare/v2.0.0...v2.1.0
|
[v2.1.0]: https://github.com/troglobit/libuev/compare/v2.0.0...v2.1.0
|
||||||
[v2.0.0]: https://github.com/troglobit/libuev/compare/v1.6.0...v2.0.0
|
[v2.0.0]: https://github.com/troglobit/libuev/compare/v1.6.0...v2.0.0
|
||||||
[v1.6.0]: https://github.com/troglobit/libuev/compare/v1.5.2...v1.6.0
|
[v1.6.0]: https://github.com/troglobit/libuev/compare/v1.5.2...v1.6.0
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ int main(void)
|
|||||||
|
|
||||||
uev_init(&ctx);
|
uev_init(&ctx);
|
||||||
/* Set up a timer watcher to call cb() every other second */
|
/* Set up a timer watcher to call cb() every other second */
|
||||||
uev_timer_init(&ctx, &timer, cb, NULL, 0, 2 * 1000);
|
uev_timer_init(&ctx, &timer, cb, NULL, 2 * 1000, 2 * 1000);
|
||||||
|
|
||||||
return uev_run(&ctx, 0);
|
return uev_run(&ctx, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT(libuev, 2.1.0, https://github.com/troglobit/libuev/issues)
|
AC_INIT(libuev, 2.1.1, https://github.com/troglobit/libuev/issues)
|
||||||
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
|
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
|
||||||
AM_SILENT_RULES([yes])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
||||||
|
|||||||
Vendored
+20
@@ -1,3 +1,23 @@
|
|||||||
|
libuev (2.1.1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Minor bugfix release
|
||||||
|
* Use native version numbering for package
|
||||||
|
|
||||||
|
-- Joachim Nilsson <troglobit@gmail.com> Sun, 28 Jan 2018 13:38:00 +0100
|
||||||
|
|
||||||
|
libuev (2.1.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release. Further improvements to failure modes, some
|
||||||
|
fixes to regressions introduced in v2.0.
|
||||||
|
|
||||||
|
- Unconditionally stop I/O watchers on UEV_HUP and UEV_ERR conditions.
|
||||||
|
- Attempt to restart failing signal watchers before dropping to error.
|
||||||
|
- Properly de-register signal and cron/timer watchers on error.
|
||||||
|
- Fix possible double close() on cron/timer watchers.
|
||||||
|
- Documentation updates, improved examples, and unit tests.
|
||||||
|
|
||||||
|
-- Joachim Nilsson <troglobit@gmail.com> Tue, 14 Nov 2017 17:40:43 +0100
|
||||||
|
|
||||||
libuev (2.0.0-1) unstable; urgency=medium
|
libuev (2.0.0-1) unstable; urgency=medium
|
||||||
|
|
||||||
* Major new upstream version, possibly incompatible changes to both
|
* Major new upstream version, possibly incompatible changes to both
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libuev.la
|
|||||||
libuev_la_SOURCES = uev.c io.c timer.c signal.c cron.c
|
libuev_la_SOURCES = uev.c io.c timer.c signal.c cron.c
|
||||||
libuev_la_CPPFLAGS = -D_GNU_SOURCE -D_TIME_BITS=64
|
libuev_la_CPPFLAGS = -D_GNU_SOURCE -D_TIME_BITS=64
|
||||||
libuev_la_CFLAGS = -W -Wall -Wextra
|
libuev_la_CFLAGS = -W -Wall -Wextra
|
||||||
libuev_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:0
|
libuev_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:1:0
|
||||||
|
|
||||||
noinst_PROGRAMS = bench
|
noinst_PROGRAMS = bench
|
||||||
bench_CPPFLAGS = -D_GNU_SOURCE
|
bench_CPPFLAGS = -D_GNU_SOURCE
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ int uev_io_init(uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg, int fd, int e
|
|||||||
*/
|
*/
|
||||||
int uev_io_set(uev_t *w, int fd, int events)
|
int uev_io_set(uev_t *w, int fd, int events)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((events & UEV_ONESHOT) && _uev_watcher_active(w))
|
if ((events & UEV_ONESHOT) && _uev_watcher_active(w))
|
||||||
return _uev_watcher_rearm(w);
|
return _uev_watcher_rearm(w);
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -93,9 +93,13 @@ int uev_timer_init(uev_ctx_t *ctx, uev_t *w, uev_cb_t *cb, void *arg, int timeou
|
|||||||
/**
|
/**
|
||||||
* Reset a timer
|
* Reset a timer
|
||||||
* @param w Watcher to reset
|
* @param w Watcher to reset
|
||||||
* @param timeout Timeout in milliseconds before @param cb is called
|
* @param timeout Timeout in milliseconds before @param cb is called, zero disarms timer
|
||||||
* @param period For periodic timers this is the period time that @param timeout is reset to
|
* @param period For periodic timers this is the period time that @param timeout is reset to
|
||||||
*
|
*
|
||||||
|
* Note, the @param timeout value must be non-zero. Setting it to zero
|
||||||
|
* will disarm the timer. This is the underlying Linux function @func
|
||||||
|
* timerfd_settimer() which has this behavior.
|
||||||
|
*
|
||||||
* @return POSIX OK(0) or non-zero with @param errno set on error.
|
* @return POSIX OK(0) or non-zero with @param errno set on error.
|
||||||
*/
|
*/
|
||||||
int uev_timer_set(uev_t *w, int timeout, int period)
|
int uev_timer_set(uev_t *w, int timeout, int period)
|
||||||
|
|||||||
@@ -365,9 +365,6 @@ int uev_run(uev_ctx_t *ctx, int flags)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (w->cb)
|
|
||||||
w->cb(w, w->arg, events & UEV_EVENT_MASK);
|
|
||||||
|
|
||||||
if (UEV_CRON_TYPE == w->type) {
|
if (UEV_CRON_TYPE == w->type) {
|
||||||
if (!w->u.c.when)
|
if (!w->u.c.when)
|
||||||
uev_timer_stop(w);
|
uev_timer_stop(w);
|
||||||
@@ -376,6 +373,13 @@ int uev_run(uev_ctx_t *ctx, int flags)
|
|||||||
if (!w->u.t.timeout)
|
if (!w->u.t.timeout)
|
||||||
uev_timer_stop(w);
|
uev_timer_stop(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NOTE: Must be last action for watcher, the
|
||||||
|
* callback may delete itself.
|
||||||
|
*/
|
||||||
|
if (w->cb)
|
||||||
|
w->cb(w, w->arg, events & UEV_EVENT_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & UEV_ONCE)
|
if (flags & UEV_ONCE)
|
||||||
|
|||||||
Reference in new issue
Block a user