Re: Simultaneous destructors

Chris Jones <[email protected]>
Newsgroups gmane.comp.mozilla.devel.dom
Message-ID <[email protected]>
Benjamin Smedberg wrote:
> On 11/11/09 10:26 AM, Benjamin Smedberg wrote:
> 
>> I slightly prefer the divergent-path approach rather than the discard
>> approach, for one main reason: it means that we don't have to implement
>> special handling for actors which have already been "destructed" but are
>> still receiving messages.
>>
>> I don't think my opinion is strong enough to *insist* on the divergent-path
>> approach, though. If we do go with the discard-bad-messages approach, I'd
>> like a very solid approach torwards zombie actor IDs.
>>
>> In any case, I'm also concerned with getting a theoretically sound approach
>> implemented for plugin destructor races for 1.9.3.
> 
> I discovered another edge-case that needs consideration: when you pass an
> actor as a parameter, it must be in a state that does not race with destruction.
> 

This is a great point, I thought about this a while back.  It's 
checkable (a finite-state problem modulo RPC stacks), but there are two 
issues (i) we need more powerful machinery, in the form of the SPIN 
model checker; and (ii) the way we've been passing actors around so far, 
Msg(fooActor), will result in a 100% false-positive rate because 
|fooActor| syntax means "fooActor may be in any state."  We need to 
start passing actors as |fooActor:STATE| before cross-protocol checks 
would be useful.  (That feature is slightly broken in IPDL right now, 
but easy to fix.)

Cheers,
Chris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.