| Commit message (Expand) | Author | Age | Files | Lines |
| * | Add new channels test.•••* tests/channels.scm (pingpong): New test.
| Andy Wingo | 2017-02-20 | 1 | -0/+22 |
| * | 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 | 2 | -32/+34 |
| * | Add allocation speedup test•••* tests/speedup.scm: Add allocation speedup test.
| Andy Wingo | 2017-02-17 | 1 | -0/+13 |
| * | Add condition variable implementation•••* fibers/conditions.scm:
* tests/conditions.scm: New files.
* Makefile.am: Add new files.
* fibers.texi (Conditions): New section.
* fibers/timers.scm (sleep-operation): Rename from wait-operation.
* tests/foreign.scm: Adapt to sleep-operation change.
| Andy Wingo | 2017-02-11 | 2 | -1/+82 |
| * | More speedup tests.•••* tests/speedup.scm (do-times): Add different loop-to tests.
| Andy Wingo | 2017-01-18 | 1 | -3/+7 |
| * | Add test for parallel speedup.•••* tests/speedup.scm: New file.
* Makefile.am (TESTS): Add new file.
| Andy Wingo | 2017-01-18 | 1 | -0/+55 |
| * | Disable parallelism in scheduling-order tests•••* tests/basic.scm (assert-run-fibers-terminates): Allow keyword args to
run-fibers.
(run-order, wakeup-order): Disable parallelism.
| Andy Wingo | 2017-01-08 | 1 | -4/+4 |
| * | Add support for operations from foreign threads•••* tests/foreign.scm: New file.
* Makefile.am: Add new file.
* fibers/operations.scm (perform-operation): Support blocking operations
from foreign threads (without a scheduler).
* fibers/timers.scm (timer-sched, *timer-sched*, timer-operation): Add
support for timeouts that use an auxiliary thread instead of relying
on the current scheduler.
| Andy Wingo | 2017-01-05 | 1 | -0/+71 |
| * | Fix spawn-fiber outside run-fibers•••* fibers.scm (run-fibers): Require init thunk for run-fibers without a
scheduler.
(spawn-fiber): Incorporate helper procedures, remove dynamic-state
argument (as it's always the current dynamic state), and add parallel?
argument. Ensure the fiber will have the right read/write waiters.
* tests/basic.scm: Update.
| Andy Wingo | 2016-12-30 | 1 | -1/+6 |
| * | Add support for preemption•••* Makefile.am: Add new test.
* TODO.md: Remove stale TODO entries.
* fibers.scm (run-fibers): Add #:hz parameter.
* fibers.texi (Design): Mention that we support preemption.
(Using Fibers): Update for preemption.
* fibers/internal.scm (<scheduler>): Add hz field.
(make-scheduler): Add #:hz initarg.
(maybe-preemptive): New helper.
(run-scheduler): Use maybe-preemptive.
* tests/preemption.scm: New test.
| Andy Wingo | 2016-12-12 | 1 | -0/+81 |
| * | Fibers inherit dynamic state of parent.•••* fibers.scm (spawn-fiber): Fibers inherit dynamic state of parent.
* tests/parameters.scm: New test.
* Makefile.am: Add new file.
| Andy Wingo | 2016-12-12 | 1 | -0/+72 |
| * | Reimplement in terms of Parallel Concurrent ML•••* fibers/operations.scm: New file.
* fibers/channels.scm: Reimplement in terms of operations (CML events).
* tests/basic.scm: Remove channels tests.
* tests/channels.scm: Add channels tests.
* Makefile.am: Update for new files.
| Andy Wingo | 2016-10-03 | 2 | -22/+81 |
| * | Sleep duration test•••* tests/basic.scm (check-sleep): Add sleep duration test.
| Andy Wingo | 2016-09-11 | 1 | -1/+13 |
| * | Add initial channels tests•••* tests/basic.scm (assert-run-fibers-returns): Change arg order.
(rpc, rpc-fib): Add channels tests.
| Andy Wingo | 2016-09-10 | 1 | -5/+16 |
| * | run-fibers returns values from initial thread•••* fibers.scm (run-fibers):
* fibers/internal.scm (run-scheduler): If there is an init thunk, keep
the scheduler running until the corresponding fiber is finished.
Return the values returned from the fiber.
* tests/basic.scm (assert-run-fibers-terminates): Return values.
(assert-run-fibers-returns): New helper. Use it.
| Andy Wingo | 2016-09-10 | 1 | -3/+13 |
| * | Better fiber run order•••* fibers/internal.scm (schedule-runnables-for-next-turn): Reverse
runnables queue so that fibers are run in the next turn in the order
that they were added in the previous turn.
* tests/basic.scm (run-order): Add run order and sleep wakeup order
tests.
| Andy Wingo | 2016-09-09 | 1 | -0/+22 |
| * | Update test to-do•••* tests/basic.scm: Update comments.
| Andy Wingo | 2016-09-08 | 1 | -6/+0 |
| * | Add tests•••* Makefile.am (TESTS, TESTS_ENVIRONMENT):
* configure.ac: Enable tests.
* tests/basic.scm: Add some tests.
| Andy Wingo | 2016-09-08 | 1 | -0/+121 |