How common are the blocking API calls? Can we somehow predict whether
the SWF will need that, and optionally use a worker/non-worker context
based on that?

We can do whatever we like in Gecko, but I'd imagine that any proposal
to allow blocking on a worker will meet significant resistance in the
WG (which is, IMO, justified).

bholley

On Mon, Oct 14, 2013 at 5:03 PM, Benjamin Smedberg
<benja...@smedbergs.us> wrote:
> One of the shumway goals has been to run most or all of shumway in a worker,
> so that it can run in parallel with a web page the same way Flash currently
> does. This will significantly help solve jank associated with shumway
> loading.
>
> However, we still need to support the Flash externalInterface scripting
> layer, which is synchronous with respect to content. This exposes race
> conditions between the SWF runtime and content; we have already solved this
> for out-of-process plugins by introducing an explicit race resolution policy
> (the plugin wins races).
>
> Having this blocking interface will also support blocking shumway on
> graphics rendering; there are a fair number of SWF files that use an API to
> get a synchronous bitmap of their stage, which requires a blocking call from
> shumway to the main thread even after we get canvas-on-a-worker, which
> explicitly will not support that blocking case.
>
> I would like to know whether it is possible to support blocking between
> content and a worker to support this scripting use case.
>
> I'm fine with supporting this only for shumway as a special case, but I'm
> interested in discussing whether we can expose this to workers in general.
> We don't want to make blocking on workers a way to bypass asynchronous I/O
> checks: for instance normally workers can do synchronous indexeddb calls
> while the main thread can't. But perhaps we can expose a flag when you
> create a worker which allows it to *either* have blocking calls *or*
> blocking I/O, but not both?
>
> In general we expect shumway to be mainly non-blocking, so we'd usually get
> parallelism improvements from having it on a worker, while retaining support
> for the special cases where blocking is necessary for compatibility.
>
> --BDS
>
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to