[squeak-dev] CurrenReadOnlySourceFiles (was: Re: Question about inlining | How to access named temps in FullBlockClosure?)
Levente Uzonyi
leves at caesar.elte.hu
Mon Mar 30 21:21:42 UTC 2020
Hi Eliot,
On Mon, 30 Mar 2020, Eliot Miranda wrote:
> Well, that's not what I meant by a search. However, as Levente pointed out, textual searches should be surrounded with CurrentReadOlySouceFiles cacheDuring:. I think this is an awful implementation and would implement it
> very differently but that's the work-around we have in place now,
How would you implement it?
<history>
When I introduced CurrentReadOnlySourceFiles, I wanted to solve the
issue of concurrent access to the source files.
I had the following options:
1) controlled access to a shared resource (a single read-only copy of the
SourceFiles array) with e.g. a Monitor
2) same as 1) but with multiple copies pooled
3) exceptions to define the scope and lifetime of the resources (the
read-only copies) within a process
I chose the third option because it was possible to introduce it without
exploring and rewriting existing users: you could leave all code as-is
and sprinke CurrentReadOnlySourceFiles cacheDuring: [ ... ] around code
that needed better performance.
It's obviously not a perfect solution, but I still think it was the best
available at the time.
Later ProcessLocalVariables were added to Trunk. Which could be used to
solve the concurrent access issue by using process-local copies of the
source files. The only challenge is to release them after they are not
needed any more. Perhaps a high priority process could do that after a
few minutes of inactivity. Or we could just let them linger and see if
they cause any problems.
</history>
Levente
More information about the Squeak-dev
mailing list
|