[e-lang] Deep* and thread-safety (was Multi-Core Processor Software)
Kevin Reid
kpreid at mac.com
Mon Feb 26 21:07:35 CST 2007
On Feb 26, 2007, at 18:27, Mark Miller wrote:
> Yes. In E, DeepPassByCopy implies both DeepFrozen and DeepSelfless.
> The boot-comm system checks for DeepPassByCopy.
>
> One subtlety previously pointed out (IIRC) by Kevin Reid:
Yes.
> DeepPassByCopy is defined in terms of properties that are
> potentially observable by clients, whereas the boot-comm-system
> actually needs to know additionally that the object's
> implementation is thread-safe. The danger is that an object might
> be validly deemed DeepPassByCopy by us TCB designers, even though
> it doesn't pass the DeepPassByCopy auditor, because we know that
> these observable properties hold anyway. For example, it may
> internally contain a mutable cache that we know only effects
> performance, not overt behavior. Since pointer-sharing requires
> transitive (deep) safety, this difference is contagious: A
> DeepPassByCopy container is only deeply-thread-safe if it contains
> only deeply-thread-safe parts.
It has occurred to me that in order to create the most opportunities
for non-copying, it would be convenient if user-defined PassByCopy
objects whose implementation components are thread-safe were
automatically marked as sharable. What do you think of this?
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the e-lang
mailing list