- From: Kenneth Russell <kbr@google.com>
- Date: Wed, 8 Sep 2010 11:29:44 -0700
- To: Oliver Hunt <oliver@apple.com>
- Cc: Chris Marrin <cmarrin@apple.com>, Simon Pieters <simonp@opera.com>, whatwg@lists.whatwg.org, Web Applications Working Group WG <public-webapps@w3.org>
On Wed, Sep 8, 2010 at 11:21 AM, Oliver Hunt <oliver@apple.com> wrote: > > On Sep 8, 2010, at 11:13 AM, Chris Marrin wrote: > >> Web Sockets is certainly another candidate, but I meant Web Workers. There have been informal discussions on using ArrayBuffers as a way to safely share binary data between threads. I don't believe anything has been formalized here. > > You can't share data between workers. There is no (and there cannot be) any shared state between multiple threads of JS execution. Let's say "efficiently send" rather than "share". The current thinking has been around a way to post one ArrayBuffer to a worker which would "close" that ArrayBuffer and all views on the main thread. The way to get the same backing store from the worker back to the main thread would be to post the ArrayBuffer from the worker to the main thread, at which point the ArrayBuffer and all views on the worker would be "closed". This ping-ponging would allow efficient implementation of producer/consumer queues without allocating new backing store each time the worker wants to produce something for the main thread. This would require some small API additions to the typed array spec, and a prototype so we can convince ourselves of its effectiveness. -Ken
Received on Wednesday, 8 September 2010 18:30:26 UTC