| Commit message (Expand) | Author | Age | Files | Lines |
| * | Merge pull request #14 from craigmaloney/master•••Substitute @math for @sub, typo fixesHEADmaster | Andy Wingo | 2017-08-17 | 1 | -4/+4 |
| |\ |
|
| | * | Substitute @math for @sub, typo fixes | Craig Maloney | 2017-08-16 | 1 | -4/+4 |
| |/ |
|
| * | 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 Webber | 2017-08-10 | 5 | -35/+91 |
| * | Update copyright headers, adding Chris Webber where appropriate.•••* fibers/conditions.scm:
* fibers/stack.scm: Update copyright headers.
| Christopher Allan Webber | 2017-08-10 | 2 | -0/+2 |
| * | Add guix.scm file for easy development environments.•••`guix environment -l guix.scm' and go!
You can also do `guix build -f guix.scm' to test that the package builds.
* guix.scm: New file.
| Christopher Allan Webber | 2017-08-06 | 1 | -0/+77 |
| * | Removing accidental inclusion of example's previous timing.•••* fibers.texi: Removing previous timing output.
| Christopher Allan Webber | 2017-08-06 | 1 | -4/+0 |
| * | Update speed measurement for ping-pong test | Andy Wingo | 2017-08-06 | 1 | -2/+6 |
| * | Fix concurrency bug in memcached server | Andy Wingo | 2017-08-06 | 1 | -1/+3 |
| * | Lighten up fibers by installing "catch" in scheduler•••This takes the load off of each fiber and speeds things up.
| Andy Wingo | 2017-08-06 | 2 | -36/+37 |
| * | Fix typo in schedule-task-when-fd-writable | Andy Wingo | 2017-08-06 | 1 | -1/+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 Wingo | 2017-08-06 | 11 | -708/+583 |
| * | Garbage collect old condition waiters.•••* fibers/stack.scm (stack-filter!): New variable.
* fibers/conditions.scm (make-counter, counter-increment!)
(counter-reset!, %steps-till-gc): New variables.
(<condition>, make-condition): Update to take gc-step argument.
(wait-operation): Occasionally garbage collect old condition waiters.
| Christopher Allan Webber | 2017-07-31 | 2 | -5/+56 |
| * | Merge pull request #10 from cwebber/document-signal-condition•••Document signal-condition! | Andy Wingo | 2017-07-31 | 1 | -0/+5 |
| |\ |
|
| | * | Document signal-condition!•••* fibers.texi (Conditions): Document signal-condition!
| Christopher Allan Webber | 2017-07-30 | 1 | -0/+5 |
| |/ |
|
| * | Add local ping-pong benchmark | Andy Wingo | 2017-06-18 | 2 | -1/+44 |
| * | Fix diagonal benchmark | Andy Wingo | 2017-06-17 | 1 | -1/+1 |
| * | Remove dep on local dev setup | Andy Wingo | 2017-06-17 | 1 | -5/+5 |
| * | Add makefile for collecting data | Andy Wingo | 2017-06-17 | 2 | -0/+25 |
| * | Add scale-bench file.•••* benchmarks/scale-bench: New file.
| Andy Wingo | 2017-06-17 | 1 | -0/+36 |
| * | Add parallel ping-pong benchmark | Andy Wingo | 2017-06-16 | 1 | -0/+40 |
| * | Remove sieve printout | Andy Wingo | 2017-06-16 | 1 | -1/+1 |
| * | Fix sieve bug | Andy Wingo | 2017-06-16 | 1 | -2/+2 |
| * | Add false sieve-of-erastothenes benchmark | Andy Wingo | 2017-06-16 | 1 | -0/+51 |
| * | Add benchmarks. | Andy Wingo | 2017-06-16 | 3 | -0/+176 |
| * | Support compiling against Guile 3.0. | Andy Wingo | 2017-06-16 | 2 | -18/+67 |
| * | Fibers 1.0.0.•••* configure.ac: Bump version.
v1.0.0 | Andy Wingo | 2017-02-20 | 1 | -1/+1 |
| * | Fix fibers/config.scm rule•••* Makefile.am (fibers/config.scm): Fix rule.
| Andy Wingo | 2017-02-20 | 1 | -0/+1 |
| * | Fibers 1.0.0 documentation.•••* fibers.texi: Update for 1.0.0.
| Andy Wingo | 2017-02-20 | 1 | -13/+11 |
| * | Add gitignore•••* .gitignore: Add fibers/config.scm.
| Andy Wingo | 2017-02-20 | 1 | -0/+1 |
| * | Update examples in manual•••* fibers.texi: Update examples and example timings.
| Andy Wingo | 2017-02-20 | 1 | -18/+15 |
| * | Update examples•••* examples/memcached-client.scm:
* examples/memcached-server.scm:
* examples/ping-client.scm:
* examples/ping-server.scm: Update for newest run-fibers.
| Andy Wingo | 2017-02-20 | 4 | -39/+31 |
| * | Add block-asyncs in fiber->thread resume path•••* fibers/operations.scm (perform-operation): Block asyncs in resume
callback; otherwise the fiber doing the resuming could be scheduled
away.
| Andy Wingo | 2017-02-20 | 1 | -4/+6 |
| * | Update (web server fibers)•••* web/server/fibers.scm: Update for new-style nonblocking management.
| Andy Wingo | 2017-02-20 | 1 | -12/+7 |
| * | Add new channels test.•••* tests/channels.scm (pingpong): New test.
| Andy Wingo | 2017-02-20 | 1 | -0/+22 |
| * | Fix deprecation warning in (fibers operations)•••* fibers/operations.scm: Use (ice-9 threads).
| Andy Wingo | 2017-02-20 | 1 | -0/+5 |
| * | Fix epoll wakeup•••* fibers/epoll.scm (epoll): Like a complete idiot, I broke epoll
wakeup. Fixed by calling expiry->timeout while epoll-state is
waiting.
| Andy Wingo | 2017-02-20 | 1 | -5/+7 |
| * | Update REPL support for run-fibers changes.•••* fibers/repl.scm (fibers): Update for new run-fibers changes.
| Andy Wingo | 2017-02-20 | 1 | -11/+26 |
| * | Update documentation.•••* fibers.texi (Internals): Document scheduler-work-pending?.
| Andy Wingo | 2017-02-20 | 1 | -0/+5 |
| * | 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 | 7 | -126/+148 |
| * | Fix make -j problem•••* Makefile.am ($(GOBJECTS)): Depend on epoll.la.
| Andy Wingo | 2017-02-19 | 1 | -0/+1 |
| * | Minor documentation update•••* fibers.texi: Bump version and date. Add words about scalability.
| Andy Wingo | 2017-02-19 | 1 | -2/+26 |
| * | Require Guile 2.1.7•••* README.md (Download): Update required Guile version.
| Andy Wingo | 2017-02-18 | 1 | -1/+1 |
| * | Lower preemption overhead•••* fibers/interrupts.scm (with-interrupts/sigprof):
(with-interrupts/thread-cputime, with-interrupts): Separate predicate
from interrupt routine, so that predicate can run off-thread.
* fibers.scm (%run-fibers): Adapt.
| Andy Wingo | 2017-02-17 | 2 | -11/+14 |
| * | Prevent spurious preemption•••* fibers/internal.scm (<scheduler>, make-scheduler):
(scheduler-runcount, run-scheduler): Maintain a count of run fibers.
* fibers.scm (%run-fibers): Only cause the current fiber to suspend if
the runcount isn't advancing.
| Andy Wingo | 2017-02-17 | 2 | -3/+21 |
| * | Add allocation speedup test•••* tests/speedup.scm: Add allocation speedup test.
| Andy Wingo | 2017-02-17 | 1 | -0/+13 |
| * | Take advantage of accept4 interface.•••* fibers/web/server.scm (client-loop): Setvbuf here.
(socket-loop): Use new accept4 interface.
| Andy Wingo | 2017-02-15 | 1 | -2/+2 |
| * | Tweak fibers web socket options•••* fibers/web/server.scm (client-loop): Move NODELAY things here and
actually enable NODELAY (before we were... disabling it???).
(socket-loop): Remove SNDBUF munging; let's assume it doesn't matter
rather than the reverse.
| Andy Wingo | 2017-02-15 | 1 | -7/+4 |
| * | Fix epoll-modify logic•••Because this case wasn't being hit before, there were bugs.
* fibers/internal.scm (<scheduler>): Remove active fd count; we'll add a
#:forever? option to run-fibers instead. Simplify sources.
(make-scheduler): Adapt.
(schedule-fibers-for-fd): Use resume callbacks, to allow for other
kinds of callbacks.
(scheduler-poll-timeout): Don't wait for active fd count to go to
zero.
(finalize-fd): Avoid mucking with hash tables from this potentially-gc
callback.
(add-fd-event-waiter): New function.
(resume-on-fd-events): Call new function.
| Andy Wingo | 2017-02-15 | 1 | -66/+52 |
| * | Add epoll-add*!•••* fibers/epoll.scm (epoll-add*!): New function, tries an epoll-modify!
then falls back to epoll-add!.
| Andy Wingo | 2017-02-15 | 1 | -1/+8 |
| * | fibers/config.scm is built source•••* Makefile.am (BUILT_SOURCES): Mark fibers/config.scm as built.
| Andy Wingo | 2017-02-15 | 1 | -0/+2 |