- From: Michael Nordman <michaeln@google.com>
- Date: Mon, 6 Apr 2009 10:04:16 -0700
There are additional constraints that haven't been mentioned yet... Plugins. The current model for plugins is that they execute in a single-threaded world. Chrome maintains that model by hosting each plugin in its own process and RPC'ing method invocations back and forth between calling pages and the plugin instances. All plugin instances (of a given plugin) reside on the same thread. Consider three threads PageA PageB PluginC PageA -grabs storage lock PluginC -calls out to PageB (everything in NPAPI is synchronous) -now waiting for PageB to return PageB -while handling the plugins callback, attempts to grab the storage lock -BLOCKED waiting for PageA to release it PageA -calls plugin (sync method call) -BLOCK waiting indirectly for PageB == DEADLOCK -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090406/7c248d60/attachment.htm>
Received on Monday, 6 April 2009 10:04:16 UTC