[Seaside] [FIX] SeasideServiceSyncToSeaside2.3

Avi Bryant avi at beta4.com
Tue Apr 8 22:06:32 CEST 2003


On Wed, 9 Apr 2003, Stephen Pair wrote:

> I seem to recall that Seaside used to have a method called
> #threadSafeValue: added to BlockContext.  Maybe I'm wrong.  Anyway, if
> one wanted to use a block with a pluggable http service, then I'll need
> to use some sort of mechanism like this.  To allow multple invocations
> of the block, I think I'll need to do something like:
>
> ----
> BlockContext>>threadSafeValue: arg
>
>     ^self copy fixTemps value: arg
> ----
>
> Why was that message dropped from Seaside?

Because Seaside no longer needs it.  It used to be that invoking a
continuation didn't properly terminate the current stack, so any blocks
that were in the middle of being executed couldn't ever be executed again.
Before I figured out what was really going on, I used #threadSafeValue a
lot to copy blocks before executing them.  When I fixed the bug in
continuation so that the stack got terminated, I was able to remove all
the sends to #threadSafeValue.

However, in this case you will indeed still need something like that,
because you're actually dealing with multiple processes evaluating the
same block at once, not just with continuation issues.

Avi



More information about the Seaside mailing list