| Commit message (Expand) | Author | Age | Files | Lines |
| * | run-fibers returns when initial fiber finishes•••* epoll.c (scm_primitive_epoll_wait): Accept timeout in internal time
units instead of milliseconds. Avoid some overhead if the timeout is
zero.
* fibers/epoll.scm (epoll): Adapt to primitive-epoll-wait chance.
Change get-timeout callback to an "expiry" argument and an
update-expiry last-minute function. Tighten the window around the
"waiting" epoll-state.
* fibers.scm (%run-fibers): Remove current-read-waiter /
current-write-waiter parameterization, given that fibers individually
each have this parameterization.
(run-fibers): Add #:drain? argument.
* fibers/internal.scm (schedule-runnables-for-next-turn): Simplify a
bit, inlining scheduler-poll-timeout and adapting to epoll change.
(scheduler-work-pending?): New function.
(run-scheduler): Simplify finish? logic.
* tests/basic.scm:
* tests/speedup.scm: Update to drain where needed.
* fibers.texi: Update for new run-fibers termination condition.
| Andy Wingo | 2017-02-19 | 1 | -7/+20 |
| * | Prevent GC from waking up epoll•••* epoll.c (do_epoll_wait): Leave Guile to do the epoll, preventing libgc
from having to interrupt us for GC.
| Andy Wingo | 2017-02-08 | 1 | -7/+27 |
| * | Remove epoll dep on suspendable ports•••* epoll.c (scm_primitive_epoll_wake): New function.
(scm_primitive_epoll_wait): If the epoll was woken, drain the read
pipe directly.
(init_fibers_epoll): Adapt prototypes.
* fibers/epoll.scm (epoll-wake!): Use primitive-epoll-wake.
(epoll): Let primitive-epoll-wait handle wakeup.
| Andy Wingo | 2017-01-04 | 1 | -4/+45 |
| * | C-c works on threads stuck in epoll•••* epoll.c (scm_primitive_epoll_wait): Add wakefd argument, and use
facilities from git guile to ensure that C-c will wake a thread
sleeping in epoll.
(init_fibers_epoll): Declare additional primitive-epoll-wait arg.
* fibers/epoll.scm (epoll): Tell Guile about the wake fd.
| Andy Wingo | 2016-12-29 | 1 | -10/+18 |
| * | add (fibers epoll)•••* configure.ac: Add checks for sys/epoll.h, epoll_create, and
epoll_create1.
* epoll.c: New file.
* module/ice-9/epoll.scm: New file.
* module/Makefile.am: Build new files.
* env.in: Add to LTDL_LIBRARY_PATH.
* .gitignore: Add new built products.
| Andy Wingo | 2016-07-03 | 1 | -0/+174 |