On Mon, Aug 18, 2014 at 5:10 PM, Domenic Denicola
<dome...@domenicdenicola.com> wrote:
> In general I feel this thread has taken a turn for the complex. Why don't we 
> just do what other platforms do, and provide a simple global request/release 
> mechanism (or toggleable Boolean property!), which developers can build on 
> top of? A lot of the ideas here seem to be trying to create the perfect, 
> developer-friendly, foolproof API. Some of them seem quite clever too, tying 
> to page visibility and the like. But all of them could be built, as 
> libraries, on top of a global request/release. That way users could get 
> reference counting if they want that, visibility-based locking if they want 
> that, promise-based locking if they want that, timeouts if they want those, 
> or even just not do any of those if their use case is simple enough that it 
> doesn't warrant anything more complicated than what they are already doing on 
> existing platforms.
>
> We don't need to solve Hard Problems in Programming (TM) before we expose a 
> wake lock API. Leave that as a subsequent step, which users can do, while we 
> move on to exposing more missing platform capabilities

Nope, doesn't work.  You can't build anything more complex on top of a
simple request/release (or a boolean, which is equivalent), because
any other library can come along and screw with the lock.  So, if we
want this to be extensible, we still need to design it in a localized
way so that you can have multiple independent locks.

If we did that, we *could* then layer a visibility/promise-based thing
on top as an auto-release mechanism for a specific lock.  But you've
still got to solve at least one problem correctly.

~TJ

Reply via email to