Yes, that is what Alex is saying. Handler B will not begin before handler A 
finishes. Event handlers don't get paused. Furthermore, when you (or the 
Player) calls dispatchEvent(), all the event handlers listening for that event 
execute before dispatchEvent() returns.

Gordon Smith
Adobe Flex SDK Team

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On Behalf 
Of Jon Gunnip
Sent: Thursday, August 27, 2009 5:21 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Race conditions when event handlers triggered from 
different targets



Alex,

Thanks. Just to be clear, are you saying that once event handler A'
begins executing, another event handler B' will not begin executing
until A' finishes?

Even in a single-threaded environment, not knowing how the flash
player works, it is possible that the player could decide to "pause"
an executing event handler to allow another to progress. That would
create the scenario I am describing.

Jon

On Thu, Aug 27, 2009 at 6:54 PM, Alex 
Harui<aha...@adobe.com<mailto:aharui%40adobe.com>> wrote:
> Because actionscript is single-threaded, your scenario cannot happen.
>
> Alex Harui
> Flex SDK Developer
> Adobe Systems Inc.
> Blog: http://blogs.adobe.com/aharui
>
>
> -----Original Message-----
> From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
> [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] On 
> Behalf Of Jon Gunnip
> Sent: Thursday, August 27, 2009 1:49 PM
> To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
> Subject: Re: [flexcoders] Race conditions when event handlers triggered from 
> different targets
>
> Thanks, Tracy. I'm not principally concerned with knowing when two
> operations have completed. I'm more concerned about checking the
> status of a global variable in event handler A' and then having that
> variable's value changed by event handler B' before A' is finished
> executing.  In Java you might use a synchronized block for this.  I
> was hoping the flash player might make some guarantees that make a
> concern like this unnecessary, especially since it executes in a
> single thread.
>
> Are there any resources that describe the internals of the Flash
> player?  Is there a spec like there is for the Java runtime?
>
> Thanks,
> Jon
>
> On Thu, Aug 27, 2009 at 12:44 PM, Tracy 
> Spratt<tr...@nts3rd.com<mailto:tracy%40nts3rd.com>> wrote:
>>
>>
>> You can't predict order, but you can be assured that there is no parallel
>> processing of actionscript code.  I don't know the internals of the flash
>> player well enough to say in detail but there are rules that control what
>> code is processed when.
>>
>>
>>
>> If you need to know that two async processes have completed, use a flag or
>> dictionary, set a flag value in each handler, and check it in each handler.
>>
>>
>>
>> Tracy Spratt,
>>
>> Lariat Services, development services available
>>
>> ________________________________
>>
>> From: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com> 
>> [mailto:flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>] On
>> Behalf Of Jon Gunnip
>> Sent: Thursday, August 27, 2009 10:04 AM
>> To: flexcoders@yahoogroups.com<mailto:flexcoders%40yahoogroups.com>
>> Subject: [flexcoders] Race conditions when event handlers triggered from
>> different targets
>>
>>
>>
>>
>>
>> Hi,
>>
>> I have a concern about possible race conditions in our Flex
>> application. I've read in "Essential ActionScript 3.0" that the Flash
>> runtime will not interrupt the execution of an event handler to update
>> the screen. I'm wondering if there are any similar guarantees about
>> the order in which two event handlers registered with different
>> targets are executed. Consider the following:
>>
>> User presses button A triggering event handler A'
>> In same frame, result returned from HTTPService B, triggering event handler
>> B'
>>
>> If A' starts executing before B', will it run to completion before B'
>> starts executing, or could their execution be interleaved?
>>
>> Thanks,
>> Jon
>>
>>
>
>
> ------------------------------------
>
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Alternative FAQ location: 
> https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> Search Archives: 
> http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups Links
>
>
>
>
>
> ------------------------------------
>
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Alternative FAQ location: 
> https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> Search Archives: 
> http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups Links
>
>
>
>

Reply via email to