[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] Re: pet project continued
From: |
F. Wittenberger |
Subject: |
[Chicken-users] Re: pet project continued |
Date: |
Fri, 05 Dec 2008 18:01:13 +0100 |
Hi all,
to those who put chicken to heavy loaded mutlithreaded work: on
Fri, 14 Nov 2008 16:21:45 +0100 I posted a patch to the scheduler and an
llrbtree implementation.
If you kept the llrbtree.scm last time, please replace it with the
attached version. The old one had two bugs (a rare one an one which
covered it from my tests :-{ ).
Further attached a patch to the scheduler and rules.make. This patch
changes: fd-list and timeout-list became llrbtrees, the ready queue is
split into a ready queue and a waiting queue and select(2)'s are
suppressed until the ready queue has run empty once (this saves
select(2) calls without delaying any thread -- since they would not run
before anyway). So far the changes, which I posted before (now with
fixes). The new modification: both the ready-queue and the
waiting-queue are handled more efficiently (amortised: zero
allocations). Also in this patch: cond-expand'ed section for -feature
rbtree (to use Marc's rbtree implementation) and -feature
ready-queue-linear (which switches back to the last version I posted,
where the ready/waiting split was done, but both with the original queue
code). (I do not intent to spend time on bringing in a -feature to live
with the old fd-list and timeout-list code. There is a Big-O difference
in the algorithm, hence not worth to keep.)
Best regards
/Jörg
PS:
sched.patch
Description: Text Data
llrbtree.scm
Description: Text Data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-users] Re: pet project continued,
F. Wittenberger <=