[Glass] Recursion deadlock with TransientRecursionLock

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Tue Apr 14 06:31:49 PDT 2015


Yep, that's my take on it ...

On 4/13/15 10:32 PM, Johan Brichau wrote:
>
>> On 13 Apr 2015, at 21:53, Dale Henrichs via Glass 
>> <glass at lists.gemtalksystems.com 
>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>
>> I just looked and there used to be (in 2.8?) a fork at the session 
>> level and that fork insulated the rest of the handling stack (which 
>> is pretty much unchanged since 2.8)  from process perturbations 
>> caused by continuations ... with the introduction of partial 
>> continuations that occurred in 3.0(?) the fork was eliminated ... so 
>> these days the process can (and apparently does) change all of the 
>> time during `(resultBlock value: aNativeRequest)` and as you point 
>> out this doesn't matter unless a commit conflict occurs during the 
>> handling of a continuation ....
>
> For what I understand, the "root of all evil" is in the 
> WAPartialContinuation class doing calls to 
> GsProcess>>partialContinuationFromLevel:to: and 
> GsProcess>>installPartialContinuation:atLevel:value:
> I assume (because there is a primitive call there) that this switches 
> the GsProcess object for the active process. So, it’s never passing 
> through any fork or other process switching in the ProcessorScheduler, 
> from what I can make of it.
>
> Yes, glad I finally found this one… those crashes have been bothering 
> me for years already!!
>
> Johan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150414/a9f301a0/attachment.html>


More information about the Glass mailing list