Reflections on Structured Concurrency

Brian Goetz brian.goetz at oracle.com
Tue Nov 16 18:01:57 UTC 2021


Indeed, this was very much on our mind in designing StructuredExecutor.  
It is not the ultimate answer for structured concurrency -- since we 
(and other language communities) are still searching for that -- but it 
is a practical on-ramp, which encourages you towards safe idioms and 
away from unsafe ones.

Structured concurrency allows you to get to global properties of a 
computation from the sum of local properties.  If a structured 
computation spawns another structured computation, we can derive safety 
and lifetime properties for the whole thing by looking only at the 
relationship between a parent and its immediate children.  
StructuredExecutor hopefully makes it easier for each layer of the 
computation to follow the rules.

On 11/16/2021 11:39 AM, Eric Kolotyluk wrote:
> As a developer, I don't want to have to think too much, I want things to be
> as intuitive as possible, and I want the default to be that the design is
> as safe as possible. I appreciate designs that protect me from my own
> stupidity. Rather, I appreciate designs that let me save my intelligence
> for unique problems by dealing well with boilerplate problems. As an
> architect and designer, I know how things are rarely as simple as people
> want them to be.


More information about the loom-dev mailing list