summaryrefslogtreecommitdiff
path: root/Makefile.am (follow)
Commit message (Expand)AuthorAgeFilesLines
* Garbage collect synchronized items from channels put/get queues.•••* fibers/conditions.scm (make-counter, %steps-till-gc, counter-decrement!) (counter-reset!): Moved to new module, counter.scm. * fibers/counter.scm: New file. Rename `%steps-till-gc' to `%countdown-steps'. * Makefile.am: Add counter.scm. * fibers/channels.scm (<channel>, make-channel): Add new slots `getq-gc-counter' and `putq-gc-counter'. (put-operation, get-operation): Garbage collect synchronized items from queues. * fibers/deque.scm (dequeue-filter, dequeue-filter!): New procedures. Christopher Allan Webber2017-08-101-0/+1
* Rebase fibers on top of schedulers and tasks•••This commit refactors fibers to be based on lighter-weight "tasks", and makes the scheduler API more orthogonal. Now there are no more fiber objects (although the fibers layer could re-add them if they are useful), and fibers no longer have names (although again this could be re-added at an upper layer). Also it's the current scheduler that's bound by a parameter, not the current fiber, and as it's a thread-safe parameter it doesn't need to be bound in each fiber. Andy Wingo2017-08-061-1/+1
* Fix fibers/config.scm rule•••* Makefile.am (fibers/config.scm): Fix rule. Andy Wingo2017-02-201-0/+1
* Fix make -j problem•••* Makefile.am ($(GOBJECTS)): Depend on epoll.la. Andy Wingo2017-02-191-0/+1
* fibers/config.scm is built source•••* Makefile.am (BUILT_SOURCES): Mark fibers/config.scm as built. Andy Wingo2017-02-151-0/+2
* Add concurrent web server•••* fibers.texi (Concurrent Web Server): New section. * fibers/web/server.scm: Add web server that can run handlers concurrently. * examples/concurrent-web-hello.scm: New file. * Makefile.am (SOURCES): Add (fibers web server). Andy Wingo2017-02-111-0/+1
* 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 Wingo2017-02-111-0/+2
* Better findability for epoll extension.•••* fibers/config.scm.in: New file. * Makefile.am: Wire up new file. * env.in: Define FIBERS_BUILD_DIR. * fibers/epoll.scm: Use (fibers config) to get dir for epoll extension. Andy Wingo2017-01-191-0/+8
* Add test for parallel speedup.•••* tests/speedup.scm: New file. * Makefile.am (TESTS): Add new file. Andy Wingo2017-01-181-1/+2
* 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 Wingo2017-01-051-0/+1
* Rework runqueue as pair of stacks•••* fibers/stack.scm: New file. * Makefile.am: Add new file. * fibers/internal.scm: Rework runqueue to have separate current and next stacks. We want to expose the current runqueue so that remote schedulers can steal work, but we also need to know when we flip the next runqueue to the current runqueue so that we can pull in additional wakeups from epoll and timers. Andy Wingo2016-12-221-0/+1
* 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-0/+1
* Add posix-clocks.scm•••* fibers/posix-clocks.scm: New file. * Makefile.am: Add new file. Andy Wingo2016-12-161-0/+1
* 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/+2
* 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-1/+2
* Factor out deque implementation•••* fibers/deque.scm: Factor out to helper module. * Makefile.am: Add deque.scm. * fibers/channels.scm: Use (fibers deque). Andy Wingo2016-10-111-0/+1
* 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-0/+1
* 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 Wingo2016-10-031-1/+4
* Add ,fibers command.Andy Wingo2016-09-201-1/+2
* Add nameset to name fibers and schedulers•••* fibers/nameset.scm: New file. * Makefile.am (SOURCES): Add new file. Andy Wingo2016-09-191-0/+1
* README in markdown form•••* README.md: Change to markdown. * Makefile.am: Update. Andy Wingo2016-09-111-0/+2
* Merge pull request #3 from codemac/buildfixes•••Makefile.am: Use $(GUILE) for running testsAndy Wingo2016-09-111-1/+1
|\
| * Makefile.am: Use $(GUILE) for running testsJeff Mickey2016-09-081-1/+1
* | Use Ian Price's priority search queues•••* fibers/psq.scm: New file, imported from Ian Price's PFDS project (https://github.com/ijp/pfds). * Makefile.am: Add new file. * fibers/internal.scm: Use a PSQ for the sleepers set instead of the list. Fixes N^2 badness, apparently. Andy Wingo2016-09-091-0/+1
|/
* Add tests•••* Makefile.am (TESTS, TESTS_ENVIRONMENT): * configure.ac: Enable tests. * tests/basic.scm: Add some tests. Andy Wingo2016-09-081-2/+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-2/+3
* Add channels implementation•••* fibers/channels.scm: New file. * fibers.scm: Add comment. * Makefile.am: Add new file. Andy Wingo2016-09-061-0/+1
* Add fibers.texi•••* fibers.texi: New file. * Makefile.am: Add new file. Andy Wingo2016-09-041-0/+2
* Add fibers-based web server implementation•••* web/server/fibers.scm: New file. * examples/web-hello.scm: New file. * Makefile.am: Build web/server/fibers.go. v0.1.0Andy Wingo2016-07-031-1/+2
* Add (fibers) module•••* fibers.scm: New file. * Makefile.am: Add new file. Andy Wingo2016-07-031-1/+3
* 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 Wingo2016-07-031-5/+10
* initial commitAndy Wingo2016-07-031-0/+39