[Seaside-dev] Seaside-Flow

Julian Fitzell jfitzell at gmail.com
Sun Jan 25 10:36:57 UTC 2009


On Sat, Jan 24, 2009 at 10:15 PM, Lukas Renggli <renggli at gmail.com> wrote:
> Currently we use partial continuations, which further reduces
> memory consumption. Using partial continuations also allows us to
> further optimize the request processing, as the WAProcessMonitor beast
> is not needed anymore (not currently done).

As I we were discussing earlier, partial continuations can be mostly
simulated with two full continuations (only difference is dynamic
scope during executing of the callback). I'm not sure, though, how you
implement that without having a hook at the place you want to "begin"
the "partial continuation".

Attached is the implementation I had from a few weeks back.

It places a Demarcation in the action callback (you can configure
whether to use WAPartialDemarcation or WAFullDemarcation in
#evaluateWithArgument:). That Demarcation is then asked to create and
evaluate the continuations and can do the correct behaviour for either
the true partial continuations or using two full continuations
depending on the selected subclass.

(You can ignore WANewProcessBoundary and WAMutualExclusionFilter for
the moment while looking at this code - they are a related but
different experiment.)

Something like this would also mean that the Flow package is usable
even without the RenderLoop (at the moment it has a method name
hardcoded as its marker).

Now, if Gemstone, VW, and Squeak all support the partial
continuations, we may be happy enough telling everyone that Flow can
only be used in this one place and all other porters have to customize
WAActionCallback (non-platform-specific-code) to make their
implementations work. Neither of these is the end of the world,
obviously, but since I had already written this code, I'm interested
in feedback.

Julian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Demarcation.2.cs
Type: application/octet-stream
Size: 7019 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/seaside-dev/attachments/20090125/9eab3ebe/Demarcation.2-0001.obj


More information about the seaside-dev mailing list