mirror of /home/gitosis/repositories/libev.git
*** empty log message ***
This commit is contained in:
parent
6f17b777d0
commit
ebd88ad8a1
8
Changes
8
Changes
|
@ -4,8 +4,16 @@ TODO: revisit 59.x timer in the light of modern powersaving
|
|||
TODO: maybe use timerfd to detect time jumps on linux
|
||||
TODO: document EV_TSTAMP_T
|
||||
|
||||
4.31
|
||||
- handle backends with minimum wait time a bit better by not
|
||||
waiting in the presence of already-expired timers
|
||||
(behaviour reported by Felipe Gsper).
|
||||
|
||||
4.30 (EV only)
|
||||
- change non-autoconf test for __kernel_rwf_t by testing
|
||||
LINUX_VERSION_CODE, the most direct test I could find.
|
||||
- fix a bug in the io_uring backend that polled the wrong
|
||||
backend fd, causing it to not work in many cases.
|
||||
|
||||
4.29 (EV only)
|
||||
- add io uring autoconf and non-autoconf detection.
|
||||
|
|
4
ev.c
4
ev.c
|
@ -3862,8 +3862,8 @@ ev_run (EV_P_ int flags)
|
|||
|
||||
/* now there are two more special cases left, either we have
|
||||
* already-expired timers, so we should not sleep, or we have timers
|
||||
* that expire very soon, in which case we need to weait for a minimum
|
||||
* amount of time for some event loop backends
|
||||
* that expire very soon, in which case we need to wait for a minimum
|
||||
* amount of time for some event loop backends.
|
||||
*/
|
||||
if (ecb_expect_false (waittime < backend_mintime))
|
||||
waittime = waittime <= EV_TS_CONST (0.)
|
||||
|
|
14
ev_iouring.c
14
ev_iouring.c
|
@ -578,7 +578,7 @@ iouring_poll (EV_P_ ev_tstamp timeout)
|
|||
/* no events, so maybe wait for some */
|
||||
iouring_tfd_update (EV_A_ timeout);
|
||||
|
||||
/* only enter the kernel if we have somethign to submit, or we need to wait */
|
||||
/* only enter the kernel if we have something to submit, or we need to wait */
|
||||
if (timeout || iouring_to_submit)
|
||||
{
|
||||
int res;
|
||||
|
@ -608,12 +608,6 @@ iouring_init (EV_P_ int flags)
|
|||
if (!epoll_init (EV_A_ 0))
|
||||
return 0;
|
||||
|
||||
ev_io_init (&iouring_epoll_w, iouring_epoll_cb, backend_fd, EV_READ);
|
||||
ev_set_priority (&iouring_epoll_w, EV_MAXPRI);
|
||||
|
||||
ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ);
|
||||
ev_set_priority (&iouring_tfd_w, EV_MAXPRI);
|
||||
|
||||
iouring_entries = IOURING_INIT_ENTRIES;
|
||||
iouring_max_entries = 0;
|
||||
|
||||
|
@ -623,6 +617,12 @@ iouring_init (EV_P_ int flags)
|
|||
return 0;
|
||||
}
|
||||
|
||||
ev_io_init (&iouring_epoll_w, iouring_epoll_cb, backend_fd, EV_READ);
|
||||
ev_set_priority (&iouring_epoll_w, EV_MAXPRI);
|
||||
|
||||
ev_io_init (&iouring_tfd_w, iouring_tfd_cb, iouring_tfd, EV_READ);
|
||||
ev_set_priority (&iouring_tfd_w, EV_MAXPRI);
|
||||
|
||||
ev_io_start (EV_A_ &iouring_epoll_w);
|
||||
ev_unref (EV_A); /* watcher should not keep loop alive */
|
||||
|
||||
|
|
Loading…
Reference in New Issue