- From: Biju <bijumaillist@gmail.com>
- Date: Thu, 14 Aug 2014 07:44:52 -0400
- To: Jonas Sicking <jonas@sicking.cc>
- Cc: WHAT Working Group <whatwg@lists.whatwg.org>
On 14 August 2014 03:07, Jonas Sicking <jonas@sicking.cc> wrote:
> On Wed, Aug 13, 2014 at 9:46 PM, Biju <bijumaillist@gmail.com> wrote:
>>
>> On 13 August 2014 21:00, Jonas Sicking <jonas@sicking.cc> wrote:
>>>
>>> An alternative design would be something like
>>>
>>> x = new WakeLock("display");
>>> x.request();
>>> x.release();
>>>
>>> Extra calls of either request() or release() are ignored, but pages
>>> can create any number of WakeLocks of the same type.
>>
>> If application made a x.request() then "x" got garbage collected
>> system should automatically do x.release();
>
> No. We don't want authors to come to rely on GC to have their locks
> released. That would cause very erratic behavior where sometimes the
> lock would be held for 2 seconds after the last reference to 'x' was
> removed, and sometimes the lock would be held for 30 minutes past that
> point.
>
> In other words, it would make GC observable. Not always observable by
> the page, but by the user which can be just as bad.
>
> / Jonas
So what happens when we have following function call.
How do we release the runaway lock request.
Another case is a page made lock and user navigate away from the page.
Do the browser keep the lock for ever ?
function xyz(){
do_something_1();
x = new WakeLock("display");
x.request();
do_something_2();
throw "some runtime error occurred";
do_something_3();
x.release();
do_something_4();
}
Received on Thursday, 14 August 2014 11:45:19 UTC