incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cosma Colanicchia <>
Subject Re: Actionscript workers and async locking?
Date Mon, 26 Mar 2012 07:41:08 GMT
@LeftRight: about faults.. the first idea on my mind was simply
translating fault events into standard Error throwing, so you can use
normal try/catch logic to handle failed sequences instead of
explicitly analyzing the result of each "synchronized" invocation.

@Robert: exactly, I don't really care about improving response time,
I'd just like to write this kind of logic in a linear method instead
of having it scattered in multiple event listener methods.. it's about
code readability and verbosity. Thanks very much for the links, I'm
going to read it carefully.

@Roland: as3commons-async looks nice, it looks that they are trying,
with the Task class, to mitigate the same pain I was talking about. I
think that, without any real "thread locking" API, it can't get much
better than this.

@Martin: that would be an improvement: using premises instead of
creating a lot of ICountProvider and IConditionProvider to express
control flows (probably, they could be built on top of these

I feel like a lot of people tried and are trying to address the
disadvantages of coding async control flows. So I ask myself again:
with worker threads, wouldn't it be simpler to just ask to synchronize
the thread on the async token, i.e. locking it until result/fault?


2012/3/26 Justin Mclean <>:
> Hi,
>> It sounds like you really can't do much about the timing of your bootstrap if one
call is dependent upon the result of your prior call. Even if you had threads available, you'd
be waiting the same amount of time.
> Event maps in the Mate framework I find quite useful for this sort of issue (
> Here's a code snippet (from an old Flex3 project I had lying about so might be a little
out of date) that give you a feel for event maps in Mate:
>        <EventHandlers type="{LoginEvent.ATTEMPT_USERLOGIN}">
>                <RemoteObjectInvoker instance="{service.loginService}" method="getLoggedOnUser">
>                        <resultHandlers>
>                                <MethodInvoker generator="{SelfRegWizard}"
method="loginAccountStatus" arguments="{resultObject}" />
>                        </resultHandlers>
>                        <faultHandlers>
>                                <EventAnnouncer generator="{ReportEvent}"
constructorArguments="{[ReportEvent.WARNING, 'loginFailed', 'Login Failed']}" />
>                        </faultHandlers>
>                </RemoteObjectInvoker>
>        </EventHandlers>
>        <EventHandlers type="{LoginEvent.SUCCESSFUL_LOGIN}">
>                <RemoteObjectInvoker instance="{service.loginService}" method="getLoggedOnUser">
>                        <resultHandlers>
>                                <PropertySetter generator="{SelfRegWizard}"
sourceKey="{selfRegModel.newAccount}" targetKey="newAccount"/>
>                        </resultHandlers>
>                </RemoteObjectInvoker>
>        </EventHandlers>
> Thanks,
> Justin

View raw message