summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* Update documentation.•••* fibers.texi: Update. v0.2.0Andy Wingo2016-09-111-2/+271
* Remove `sleep' export from (fibers internal)•••* fibers/internal.scm: Remove `sleep' export. Andy Wingo2016-09-111-1/+0
* Release preparations•••* README: New link to README.md, to make automake --gnu happe. * configure.ac: Bump version in anticipation of release. * fibers.texi: Start to flesh out a bit more. Andy Wingo2016-09-113-2/+19
* README in markdown form•••* README.md: Change to markdown. * Makefile.am: Update. Andy Wingo2016-09-113-56/+91
* Minor TODO.md updates•••* TODO.md: Minor updates. Andy Wingo2016-09-111-20/+20
* 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
* | Work around autoreconf bug•••* build-aux/config.rpath: New file, fixes autoreconf failure (https://github.com/wingo/fibers/issues/1). Andy Wingo2016-09-112-1/+0
* | Update .gitignore•••* .gitignore: Update. Andy Wingo2016-09-111-0/+2
* | Add TODO.md•••* TODO.md: New file. Andy Wingo2016-09-111-0/+154
* | Sleep duration test•••* tests/basic.scm (check-sleep): Add sleep duration test. Andy Wingo2016-09-111-1/+13
* | Add initial channels tests•••* tests/basic.scm (assert-run-fibers-returns): Change arg order. (rpc, rpc-fib): Add channels tests. Andy Wingo2016-09-101-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 Wingo2016-09-103-9/+26
* | 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 Wingo2016-09-092-0/+25
* | 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-093-19/+575
|/
* Update test to-do•••* tests/basic.scm: Update comments. Andy Wingo2016-09-081-6/+0
* Marginal sleeper list speedup.•••* fibers/internal.scm (wake-sleepers, add-sleeper!): Speed up marginally; still quadratic. Andy Wingo2016-09-081-14/+15
* Add tests•••* Makefile.am (TESTS, TESTS_ENVIRONMENT): * configure.ac: Enable tests. * tests/basic.scm: Add some tests. Andy Wingo2016-09-083-3/+124
* Quit the scheduler when there is nothing left to do•••* fibers/internal.scm: Detect when there is nothing left to run, and stop the scheduler in that case. * examples/ping-client.scm (client-loop): * examples/memcached-client.scm (client-loop): Remove exit call, as we will exit when needed. Andy Wingo2016-09-083-63/+81
* Enable remote fiber wakeup•••* fibers/internal.scm: When waking fibers that belong to another scheduler, arrange to do so in such a way that avoids races and makes sure that the remote scheduler wakes up from any epoll() call. Andy Wingo2016-09-071-72/+163
* 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-079-302/+343
* Add channels implementation•••* fibers/channels.scm: New file. * fibers.scm: Add comment. * Makefile.am: Add new file. Andy Wingo2016-09-063-0/+120
* Add fibers.texi•••* fibers.texi: New file. * Makefile.am: Add new file. Andy Wingo2016-09-042-0/+301
* 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
* README fixup.•••* README: Remove a stale line. Andy Wingo2016-09-021-3/+0
* 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
* Prune ping-server import list•••* examples/ping-server.scm: Remove an unneeded import. Andy Wingo2016-07-061-1/+0
* 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-033-1/+181
* Add memcached server and client examples.•••* examples/memcached-client.scm: * examples/memcached-server.scm: New files. Andy Wingo2016-07-032-0/+299
* Add ping client and server•••* examples/ping-client.scm: * examples/ping-server.scm: New files. Andy Wingo2016-07-032-0/+157
* Add (fibers) module•••* fibers.scm: New file. * Makefile.am: Add new file. Andy Wingo2016-07-032-1/+268
* 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-036-5/+311
* Add .gitignoreAndy Wingo2016-07-031-0/+22
* initial commitAndy Wingo2016-07-0313-0/+1439