summaryrefslogtreecommitdiff
path: root/fibers.scm (follow)
Commit message (Expand)AuthorAgeFilesLines
* Factor interrupt generation to separate facility•••* fibers/interrupts.scm: New file. * fibers/internal.scm (<scheduler>): Remove Hz field and adapt users. (run-scheduler): Remove preemption; (fibers) handles this now. (yield-current-fiber): New primitive. * fibers.scm (run-fibers): Use interrupts module and wrap run-scheduler in `with-interrupts'. * Makefile.am: Add new file. Andy Wingo2016-12-161-11/+15
* 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 Wingo2016-12-121-1/+1
* 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 Wingo2016-12-121-2/+7
* Internals twiddles•••* fibers/internal.scm (current-scheduler/public): Document. (current-fiber/public): New accessor. (resume-on-timer): Document. * fibers.scm: Adapt to use current-fiber directly from the internals. Remove kill-fiber. Andy Wingo2016-10-121-14/+4
* Rework internals resume interface•••* fibers/internal.scm (resume-on-fd-events, resume-on-readable-fd) (resume-on-writable-fd, resume-on-timer): Rework primitive resume interface. * fibers.scm: * fibers/timers.scm: Adapt users. Andy Wingo2016-10-121-10/+6
* Lighter fibers•••* fibers/internal.scm: Remove fiber-state; this is managed implicitly now by ensuring that a fiber is only resumed at most once per suspend. We no longer record fiber return values; that should be up to the fiber's init continuation. Replace scheduler inbox with making the runqueue atomic. * fibers.scm (run-fibers): Adapt to run-scheduler change. * fibers/repl.scm (fibers): Adapt to fiber-data change. Andy Wingo2016-10-111-7/+10
* Timeout CML operations•••* fibers/timers.scm: New file. * fibers/internal.scm (add-timer!): Take expiry as absolute time. * fibers.scm (fibers): Re-export sleep from (fibers timers). * Makefile.am: Adapt. Andy Wingo2016-10-031-9/+2
* Sleep refactor•••* fibers/internal.scm: Rename sleepers to timers, and be callbacks instead of waking fibers directly. * fibers.scm (sleep): Adapt. Andy Wingo2016-10-031-1/+4
* Add support for ,spawn-fiberAndy Wingo2016-09-201-10/+11
* Add ,fibers command.Andy Wingo2016-09-201-0/+1
* 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 Wingo2016-09-101-3/+7
* Tidy up fibers imports•••* fibers.scm (fibers): Trim imports. Andy Wingo2016-09-071-5/+2
* Separate public and private fibers interfaces•••* fibers/internal.scm: New file, factored out of (fibers). * fibers.scm: Refactor to be just the public interface. * fibers/channels.scm: * web/server/fibers.scm: * examples/memcached-client.scm: * examples/memcached-server.scm: * examples/ping-client.scm: * examples/ping-server.scm: Adapt to interface changes. * Makefile.am (SOURCES): Add (fibers internal). Andy Wingo2016-09-071-250/+38
* Add channels implementation•••* fibers/channels.scm: New file. * fibers.scm: Add comment. * Makefile.am: Add new file. Andy Wingo2016-09-061-0/+5
* Add support for FD finalization•••* fibers.scm (finalize-fd, wait-for-events): Arrange for close-port to call into the scheduler. Andy Wingo2016-09-021-0/+16
* Slight internal refactor•••* fibers.scm (run): Inline `next-fiber' into its only use. Andy Wingo2016-09-021-14/+12
* Readability refactors to fibers.scm•••* fibers.scm (schedule-fibers-for-fd): New function, factored out of poll-for-events. (poll-for-events): Comments and style refactorings. Andy Wingo2016-07-061-38/+44
* Add (fibers) module•••* fibers.scm: New file. * Makefile.am: Add new file. Andy Wingo2016-07-031-0/+265