Hi Abed,

I suppose the "send" and "abort" are JS functions, and they are async calls or 
Promises.

Do you create a new thread on Crosswalk extension native code for "send" 
message handling? Otherwise, onMessage() will never be called again after your 
send_message_handling_func finished. That could explain why "abort" only 
reached after full execution.

Thanks,
Halton.
> -----Original Message-----
> From: Crosswalk-help
> [mailto:[email protected]] On Behalf Of Khet,
> Abed
> Sent: Wednesday, March 02, 2016 6:32 PM
> To: Alexis Menard <[email protected]>
> Cc: Boimel, Ohad <[email protected]>;
> [email protected]
> Subject: Re: [Crosswalk-help] [Asynchronous message posting] RE:
> Asynchronous message posting
> 
> Hi Alexis,
> 
> I am still reading the article but I want to clear to you our use case:
> We have a "send" operation which might take a long time. A user might need to
> abort this operation using "abort" call.
> We have tests in Crodova that call "send", and after 0.5 sec(for example)
> "abort" is called, so the operation is aborted.
> This is not the case in Crosswalk. "abort" reaches the extension just after
> "send" completed totally its work and returns. This is the problem we are
> facing and I wanted to learn from you how would you suggest we solve this
> problem?
> 
> Thanks,
> Abed
> 
> -----Original Message-----
> From: Alexis Menard [mailto:[email protected]]
> Sent: Monday, February 29, 2016 23:56
> To: Khet, Abed <[email protected]>
> Cc: [email protected]; Boimel, Ohad
> <[email protected]>
> Subject: Re: [Asynchronous message posting] RE: [Crosswalk-help]
> Asynchronous message posting
> 
> On Mon, Feb 29, 2016 at 1:40 PM, Khet, Abed <[email protected]> wrote:
> > Thanks for your answer Alexis. I did not think it is not clear, else I was 
> > to clear
> before.
> >
> > So I will explain the scenario as following:
> >
> > ## At Cross walk app Javascript side happens the following scenario:
> >         1. Async Function A is called
> >         2. Async Function B is called
> >
> >         A & B are invoking calls to the same crosswalk extension.
> >
> > ## At extension Side:
> >         Happens today: function A is calling PostMessage. When it returns,
> Function B calls PostMessage.
> 
> I think this is the expected behavior. PostMessage will be called and then the
> callback attached to it will be executed, then the context return and you can
> execute more.
> 
> >         Expected Behavior: PostMessage should be called in Parallel on
> two different threads.
> 
> Nope there is no such mechanism in place.
> 
> >
> > Javascript interpreters are supporting parallel execution and event driven
> model. This is not working for extensions as I described.
> 
> Nope some tasks are happening in parallel but unless you use something like
> Web Worker there is not parallelism out of the box in JavaScript.
> 
> https://blog.mozilla.org/javascript/2015/02/26/the-path-to-parallel-javascript/
> is a good article about it.
> 
> > If this is not clear I prefer to set a meeting with you so I show you the
> problem.
> >
> > Thanks,
> > Abed
> >
> >
> >
> > -----Original Message-----
> > From: Alexis Menard [mailto:[email protected]]
> > Sent: Monday, February 29, 2016 23:30
> > To: Khet, Abed <[email protected]>
> > Cc: [email protected]; Boimel, Ohad
> > <[email protected]>
> > Subject: Re: [Crosswalk-help] Asynchronous message posting
> >
> > Hi,
> >
> > I don't understand the context. In one side you are talking about some JS
> execution then you talk about C++ and threads. Hard to get the big picture. 
> Can
> you post a snipped of code/pseudo code of what you're trying to achieve.
> >
> > But the behavior you describe is what setTimeout would normally do if say
> the delay is the same. Calls are getting queued and then triggered.
> >
> > Thanks.
> >
> > On Thu, Feb 18, 2016 at 9:27 AM, Khet, Abed <[email protected]> wrote:
> >> Hi,
> >>
> >>
> >>
> >> I have the following line in my initialization function:
> >>
> >> g_messaging->Register(extension, handle_message);
> >>
> >>
> >>
> >> where g_messaging is from XW_MessagingInterface type.
> >>
> >>
> >>
> >> According to the documentation in the header file this function
> >> (handle_message) should be an called as an asynchronous messaging
> >> function and can be called in parallel form Javascript part. What
> >> happens is that even that calls in javascript that are fired using
> >> setTimeout JS function are being called serially one by one where the
> >> second one is called totally when the first one finishes its processing.
> >>
> >> I’ve tried solving this by using std::thread for each task depending
> >> on the fact the PostMessage function
> >> (XW_MessagingInterface_1::PostMessage) – but this caused a crash in the
> extension.
> >>
> >>
> >>
> >> How could I use asynchronous messaging in Crosswalk extension?
> >>
> >>
> >>
> >> Thanks,
> >>
> >> Abed
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> Intel Israel (74) Limited
> >>
> >> This e-mail and any attachments may contain confidential material for
> >> the sole use of the intended recipient(s). Any review or distribution
> >> by others is strictly prohibited. If you are not the intended
> >> recipient, please contact the sender and delete all copies.
> >>
> >>
> >> _______________________________________________
> >> Crosswalk-help mailing list
> >> [email protected]
> >> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help
> >>
> > ---------------------------------------------------------------------
> > Intel Israel (74) Limited
> >
> > This e-mail and any attachments may contain confidential material for
> > the sole use of the intended recipient(s). Any review or distribution
> > by others is strictly prohibited. If you are not the intended
> > recipient, please contact the sender and delete all copies.
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
> 
> This e-mail and any attachments may contain confidential material for the sole
> use of the intended recipient(s). Any review or distribution by others is 
> strictly
> prohibited. If you are not the intended recipient, please contact the sender 
> and
> delete all copies.
> _______________________________________________
> Crosswalk-help mailing list
> [email protected]
> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help
_______________________________________________
Crosswalk-help mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help

Reply via email to