<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>109765</bug_id>
          
          <creation_ts>2013-02-13 16:13:05 -0800</creation_ts>
          <short_desc>Reschedule shared CFRunLoopTimer instead of reconstructing it</short_desc>
          <delta_ts>2013-03-01 10:39:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109856</dependson>
    
    <dependson>110128</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832469</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-13 16:13:05 -0800</bug_when>
    <thetext>It is much faster to reschedule with CFRunLoopTimerSetNextFireDate than to repeatedly delete and create timers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832481</commentid>
    <comment_count>1</comment_count>
      <attachid>188213</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-13 16:20:08 -0800</bug_when>
    <thetext>Created attachment 188213
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832508</commentid>
    <comment_count>2</comment_count>
      <attachid>188213</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-13 16:38:21 -0800</bug_when>
    <thetext>Comment on attachment 188213
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=188213&amp;action=review

Hilarious! r+ from me since this looks like correct use of the API to me, though you might wanna double-check with someone with more CF knowledge.

&gt; Source/WebCore/platform/mac/SharedTimerMac.mm:154
&gt; +    static CFRunLoopTimerRef timer;
&gt; +    if (!timer) {

You could use dispatch_once() for this block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832556</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-13 17:05:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/142825</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833164</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-14 09:45:33 -0800</bug_when>
    <thetext>When I first implemented SharedTimer I tried using CFRunLoopTimerSetNextFireDate and it didn’t work. Maybe I did it wrong. Or maybe there were CF bugs that have since been fixed. Someone should be sure to test this on the oldest OS X and iOS versions that WebKit currently supports in case that old bug is not fixed there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833332</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-14 12:48:40 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; When I first implemented SharedTimer I tried using CFRunLoopTimerSetNextFireDate and it didn’t work. Maybe I did it wrong. Or maybe there were CF bugs that have since been fixed. Someone should be sure to test this on the oldest OS X and iOS versions that WebKit currently supports in case that old bug is not fixed there.

JSC already uses CFRunLoopTimerSetNextFireDate for HeapTimer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833355</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 13:29:03 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833358</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-14 13:31:33 -0800</bug_when>
    <thetext>This caused failures in some inspector debugger tests

http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r142826%20(5930)/results.html:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833361</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-14 13:33:00 -0800</bug_when>
    <thetext>Maybe nested event loops are causing problems or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834746</commentid>
    <comment_count>9</comment_count>
      <attachid>188716</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-16 09:54:18 -0800</bug_when>
    <thetext>Created attachment 188716
patch2

try to fix the inspector debugger</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834927</commentid>
    <comment_count>10</comment_count>
      <attachid>188716</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-16 21:28:56 -0800</bug_when>
    <thetext>Comment on attachment 188716
patch2

View in context: https://bugs.webkit.org/attachment.cgi?id=188716&amp;action=review

&gt; Source/WebCore/platform/mac/SharedTimerMac.mm:177
&gt; +void reinsertSharedTimer()
&gt; +{
&gt; +    // For some reason the timer won&apos;t fire in a nested runloop unless it has been freshly inserted.
&gt; +    CFRunLoopTimerInvalidate(globalSharedTimer);
&gt; +    CFRelease(globalSharedTimer);
&gt; +    globalSharedTimer = 0;
&gt; +}

This function&apos;s name seems to be at odds with its contents.
Where does the timer actually get re-inserted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835002</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-17 10:39:33 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; This function&apos;s name seems to be at odds with its contents.
&gt; Where does the timer actually get re-inserted?

From sharedTimer(), next time the timer is accessed. This will happen from ThreadTimers::fireTimersInNestedEventLoop() right after this call.

Suggestions welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835041</commentid>
    <comment_count>12</comment_count>
      <attachid>188716</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-17 14:25:52 -0800</bug_when>
    <thetext>Comment on attachment 188716
patch2

View in context: https://bugs.webkit.org/attachment.cgi?id=188716&amp;action=review

r=me if you find a nicer color for the bikeshed.

&gt; Source/WebCore/platform/mac/SharedTimerMac.mm:171
&gt; +void reinsertSharedTimer()

I&apos;d just prefer to call this removeFoo() instead of reinsertBar() since that&apos;s what it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835433</commentid>
    <comment_count>13</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-18 06:30:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/143210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835533</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 09:00:53 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 110128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835537</commentid>
    <comment_count>15</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-18 09:05:04 -0800</bug_when>
    <thetext>The bots still see some nested runloop related failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845297</commentid>
    <comment_count>16</comment_count>
      <attachid>188213</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-01 10:39:55 -0800</bug_when>
    <thetext>Comment on attachment 188213
patch

Cleared Andreas Kling&apos;s review+ from obsolete attachment 188213 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188213</attachid>
            <date>2013-02-13 16:20:08 -0800</date>
            <delta_ts>2013-03-01 10:39:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>timer-cf-reschedule.patch</filename>
            <type>text/plain</type>
            <size>3134</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTEzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNjaGVkdWxlIHNoYXJlZCBD
RlJ1bkxvb3BUaW1lciBpbnN0ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2luZyBDRlJ1bkxvb3BUaW1lclNl
dE5leHRGaXJlRGF0ZSBpcyBvdmVyIDJ4IGZhc3RlciB0aGFuIGRlbGV0aW5nIGFuZCByZWNvbnN0
cnVjdGluZyB0aW1lcnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI6
OnJlc3RhcnRTaGFyZWRUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRTaGFyZWRUaW1lckZpcmVJbnRlcnZhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpzdG9wU2hhcmVkVGltZXIpOgorCiAyMDEzLTAyLTEzICBFbGxpb3R0IFNwcmVobiAg
PGVzcHJlaG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFTU0VSVCghcmVuZGVyZXIoKS0+bmVl
ZHNMYXlvdXQoKSkgd2hlbiBjYWxsaW5nIEVsZW1lbnQ6OmZvY3VzKCkgd2l0aCBnZW5lcmF0ZWQg
Y29udGVudApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRUaW1l
ck1hYy5tbQkocmV2aXNpb24gMTQyMjUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1NoYXJlZFRpbWVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIENGUnVuTG9vcFRpbWVyUmVmIHNoYXJlZFRpbWVy
Oworc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIGRpc3RhbnRGdXR1cmUgPSA2MCAqIDYwICog
MjQgKiAzNjUgKiAxMDsgLy8gRGVjYWRlLgorCiBzdGF0aWMgdm9pZCAoKnNoYXJlZFRpbWVyRmly
ZWRGdW5jdGlvbikoKTsKIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYs
IHZvaWQqKTsKIApAQCAtMTQzLDE0ICsxNDQsMjIgQEAgdm9pZCBQb3dlck9ic2VydmVyOjpyZXN0
YXJ0U2hhcmVkVGltZXIoKQogewogICAgIEFTU0VSVChDRlJ1bkxvb3BHZXRDdXJyZW50KCkgPT0g
Q0ZSdW5Mb29wR2V0TWFpbigpKTsKIAotICAgIGlmICghc2hhcmVkVGltZXIpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIHN0b3BTaGFyZWRUaW1lcigpOwogICAgIHRpbWVyRmlyZWQoMCwgMCk7CiB9
CiAKLXN0YXRpYyBQb3dlck9ic2VydmVyKiBQb3dlck9ic2VydmVyOworc3RhdGljIENGUnVuTG9v
cFRpbWVyUmVmIHNoYXJlZFRpbWVyKCkKK3sKKyAgICBzdGF0aWMgQ0ZSdW5Mb29wVGltZXJSZWYg
dGltZXI7CisgICAgaWYgKCF0aW1lcikgeworICAgICAgICB0aW1lciA9IENGUnVuTG9vcFRpbWVy
Q3JlYXRlKDAsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgZGlzdGFudEZ1dHVyZSwgZGlz
dGFudEZ1dHVyZSwgMCwgMCwgdGltZXJGaXJlZCwgMCk7CisgICAgICAgIENGUnVuTG9vcEFkZFRp
bWVyKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgdGltZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7
CisKKyAgICAgICAgc3RhdGljIFBvd2VyT2JzZXJ2ZXIqIHBvd2VyT2JzZXJ2ZXI7CisgICAgICAg
IHBvd2VyT2JzZXJ2ZXIgPSBQb3dlck9ic2VydmVyOjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAg
fQorICAgIHJldHVybiB0aW1lcjsKK307CiAKIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0
aW9uKHZvaWQgKCpmKSgpKQogewpAQCAtMTcwLDI3ICsxNzksMTMgQEAgc3RhdGljIHZvaWQgdGlt
ZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZgogdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVJbnRlcnZh
bChkb3VibGUgaW50ZXJ2YWwpCiB7CiAgICAgQVNTRVJUKHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlv
bik7Ci0KLSAgICBpZiAoc2hhcmVkVGltZXIpIHsKLSAgICAgICAgQ0ZSdW5Mb29wVGltZXJJbnZh
bGlkYXRlKHNoYXJlZFRpbWVyKTsKLSAgICAgICAgQ0ZSZWxlYXNlKHNoYXJlZFRpbWVyKTsKLSAg
ICB9Ci0KICAgICBDRkFic29sdXRlVGltZSBmaXJlRGF0ZSA9IENGQWJzb2x1dGVUaW1lR2V0Q3Vy
cmVudCgpICsgaW50ZXJ2YWw7Ci0gICAgc2hhcmVkVGltZXIgPSBDRlJ1bkxvb3BUaW1lckNyZWF0
ZSgwLCBmaXJlRGF0ZSwgMCwgMCwgMCwgdGltZXJGaXJlZCwgMCk7Ci0gICAgQ0ZSdW5Mb29wQWRk
VGltZXIoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBzaGFyZWRUaW1lciwga0NGUnVuTG9vcENvbW1v
bk1vZGVzKTsKLSAgICAKLSAgICBpZiAoIVBvd2VyT2JzZXJ2ZXIpCi0gICAgICAgIFBvd2VyT2Jz
ZXJ2ZXIgPSBQb3dlck9ic2VydmVyOjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgQ0ZSdW5Mb29w
VGltZXJTZXROZXh0RmlyZURhdGUoc2hhcmVkVGltZXIoKSwgZmlyZURhdGUpOwogfQogCiB2b2lk
IHN0b3BTaGFyZWRUaW1lcigpCiB7Ci0gICAgaWYgKHNoYXJlZFRpbWVyKSB7Ci0gICAgICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZShzaGFyZWRUaW1lcik7Ci0gICAgICAgIENGUmVsZWFzZShz
aGFyZWRUaW1lcik7Ci0gICAgICAgIHNoYXJlZFRpbWVyID0gMDsKLSAgICB9CisgICAgQ0ZSdW5M
b29wVGltZXJTZXROZXh0RmlyZURhdGUoc2hhcmVkVGltZXIoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBkaXN0YW50RnV0dXJlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188716</attachid>
            <date>2013-02-16 09:54:18 -0800</date>
            <delta_ts>2013-02-17 14:25:51 -0800</delta_ts>
            <desc>patch2</desc>
            <filename>timer-cf-reschedule-3.patch</filename>
            <type>text/plain</type>
            <size>5827</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTE2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNjaGVkdWxlIHNoYXJlZCBD
RlJ1bkxvb3BUaW1lciBpbnN0ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2luZyBDRlJ1bkxvb3BUaW1lclNl
dE5leHRGaXJlRGF0ZSBpcyBvdmVyIDJ4IGZhc3RlciB0aGFuIGRlbGV0aW5nIGFuZCByZWNvbnN0
cnVjdGluZyB0aW1lcnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRUaW1lci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXI6OndpbGxFbnRlck5lc3RlZEV2ZW50TG9vcCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1haW5UaHJlYWRTaGFyZWRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluVGhyZWFkU2hhcmVkVGltZXI6OndpbGxFbnRlck5lc3RlZEV2ZW50
TG9vcCk6CisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZFRpbWVyczo6ZmlyZVRpbWVyc0luTmVzdGVkRXZlbnRMb29wKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvd2VyT2JzZXJ2ZXI6OnJlc3RhcnRTaGFyZWRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjplbnN1cmVQb3dlck9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNoYXJlZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlaW5zZXJ0U2hhcmVkVGltZXIpOgor
ICAgICAgICAKKyAgICAgICAgICAgIEJlZm9yZSBlbnRlcmluZyBuZXN0ZWQgcnVubG9vcCAodXNl
ZCBmb3IgaW5zcGVjdG9yIGRlYnVnZ2VyIG1vc3RseSkgcmVjb25zdHJ1Y3QgYW5kIHJlaW5zZXJ0
IHRoZSB0aW1lci4gRm9yIHNvbWUgcmVhc29uCisgICAgICAgICAgICB0aGUgdGltZXIgZG9lc24n
dCBmaXJlIG90aGVyd2lzZS4KKworICAgICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkVGltZXJGaXJl
SW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6c3RvcFNoYXJlZFRpbWVyKToKKwogMjAxMy0w
Mi0xNiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgcGVyY2Vu
dGFnZSB0b3AgdmFsdWUgb2YgcG9zaXRpb246cmVsYXRpdmUgZWxlbWVudCBub3QgY2FsY3VsYXRl
ZCB1c2luZyBwYXJlbnQncyBtaW4taGVpZ2h0IHVubGVzcyBoZWlnaHQgc2V0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRUaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NoYXJlZFRpbWVyLmgJKHJldmlzaW9uIDE0MzEwMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZFRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGUgZmlyZSBpbnRlcnZh
bCBpcyBpbiBzZWNvbmRzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG1vbm90b25pYyBjbG9jayB0
aW1lLgogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RmlyZUludGVydmFsKGRvdWJsZSkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHdp
bGxFbnRlck5lc3RlZEV2ZW50TG9vcCgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB9
OwogCiAKQEAgLTUyLDcgKzUzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHZvaWQgc2V0
U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCopKCkpOwogICAgIHZvaWQgc2V0U2hhcmVk
VGltZXJGaXJlSW50ZXJ2YWwoZG91YmxlKTsKICAgICB2b2lkIHN0b3BTaGFyZWRUaW1lcigpOwot
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVpbnNlcnRTaGFyZWRUaW1lcigpOworI2Vu
ZGlmCiAgICAgLy8gSW1wbGVtZW50YXRpb24gb2YgU2hhcmVkVGltZXIgZm9yIHRoZSBtYWluIHRo
cmVhZC4KICAgICBjbGFzcyBNYWluVGhyZWFkU2hhcmVkVGltZXIgOiBwdWJsaWMgU2hhcmVkVGlt
ZXIgewogICAgIHB1YmxpYzoKQEAgLTcwLDYgKzczLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgewogICAgICAgICAgICAgc3RvcFNoYXJlZFRpbWVyKCk7CiAgICAgICAgIH0KKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyTmVzdGVkRXZlbnRMb29wKCkKKyAgICAgICAg
eworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgICAgIHJlaW5zZXJ0U2hhcmVkVGltZXIoKTsK
KyNlbmRpZgorICAgICAgICB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwCShyZXZpc2lvbiAxNDMx
MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDIsNiArMTQyLDcgQEAgdm9pZCBUaHJlYWRUaW1lcnM6OmZpcmVUaW1lcnNJ
bk5lc3RlZEV2ZQogewogICAgIC8vIFJlc2V0IHRoZSByZWVudHJhbmN5IGd1YXJkIHNvIHRoZSB0
aW1lcnMgY2FuIGZpcmUgYWdhaW4uCiAgICAgbV9maXJpbmdUaW1lcnMgPSBmYWxzZTsKKyAgICBt
X3NoYXJlZFRpbWVyLT53aWxsRW50ZXJOZXN0ZWRFdmVudExvb3AoKTsKICAgICB1cGRhdGVTaGFy
ZWRUaW1lcigpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVk
VGltZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1No
YXJlZFRpbWVyTWFjLm1tCShyZXZpc2lvbiAxNDMxMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgQ0ZSdW5Mb29wVGltZXJSZWYgc2hh
cmVkVGltZXI7CitzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgZGlzdGFudEZ1dHVyZSA9IDYw
ICogNjAgKiAyNCAqIDM2NSAqIDEwOyAvLyBEZWNhZGUuCiBzdGF0aWMgdm9pZCAoKnNoYXJlZFRp
bWVyRmlyZWRGdW5jdGlvbikoKTsKIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGlt
ZXJSZWYsIHZvaWQqKTsKIApAQCAtMTQzLDE0ICsxNDMsMzggQEAgdm9pZCBQb3dlck9ic2VydmVy
OjpyZXN0YXJ0U2hhcmVkVGltZXIoKQogewogICAgIEFTU0VSVChDRlJ1bkxvb3BHZXRDdXJyZW50
KCkgPT0gQ0ZSdW5Mb29wR2V0TWFpbigpKTsKIAotICAgIGlmICghc2hhcmVkVGltZXIpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIHN0b3BTaGFyZWRUaW1lcigpOwogICAgIHRpbWVyRmlyZWQoMCwg
MCk7CiB9CiAKLXN0YXRpYyBQb3dlck9ic2VydmVyKiBQb3dlck9ic2VydmVyOworc3RhdGljIHZv
aWQgZW5zdXJlUG93ZXJPYnNlcnZlcigpCit7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBv
bmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAgICBzdGF0
aWMgUG93ZXJPYnNlcnZlciogcG93ZXJPYnNlcnZlcjsKKyAgICAgICAgcG93ZXJPYnNlcnZlciA9
IFBvd2VyT2JzZXJ2ZXI6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKKyAgICB9KTsKK30KKworc3RhdGlj
IENGUnVuTG9vcFRpbWVyUmVmIGdsb2JhbFNoYXJlZFRpbWVyOworCitzdGF0aWMgQ0ZSdW5Mb29w
VGltZXJSZWYgc2hhcmVkVGltZXIoKQoreworICAgIGlmICghZ2xvYmFsU2hhcmVkVGltZXIpIHsK
KyAgICAgICAgZ2xvYmFsU2hhcmVkVGltZXIgPSBDRlJ1bkxvb3BUaW1lckNyZWF0ZSgwLCBDRkFi
c29sdXRlVGltZUdldEN1cnJlbnQoKSArIGRpc3RhbnRGdXR1cmUsIGRpc3RhbnRGdXR1cmUsIDAs
IDAsIHRpbWVyRmlyZWQsIDApOworICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihDRlJ1bkxvb3BH
ZXRDdXJyZW50KCksIGdsb2JhbFNoYXJlZFRpbWVyLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwor
ICAgICAgICBlbnN1cmVQb3dlck9ic2VydmVyKCk7CisgICAgfQorICAgIHJldHVybiBnbG9iYWxT
aGFyZWRUaW1lcjsKK307CisKK3ZvaWQgcmVpbnNlcnRTaGFyZWRUaW1lcigpCit7CisgICAgLy8g
Rm9yIHNvbWUgcmVhc29uIHRoZSB0aW1lciB3b24ndCBmaXJlIGluIGEgbmVzdGVkIHJ1bmxvb3Ag
dW5sZXNzIGl0IGhhcyBiZWVuIGZyZXNobHkgaW5zZXJ0ZWQuCisgICAgQ0ZSdW5Mb29wVGltZXJJ
bnZhbGlkYXRlKGdsb2JhbFNoYXJlZFRpbWVyKTsKKyAgICBDRlJlbGVhc2UoZ2xvYmFsU2hhcmVk
VGltZXIpOworICAgIGdsb2JhbFNoYXJlZFRpbWVyID0gMDsKK30KIAogdm9pZCBzZXRTaGFyZWRU
aW1lckZpcmVkRnVuY3Rpb24odm9pZCAoKmYpKCkpCiB7CkBAIC0xNzAsMjcgKzE5NCwxMyBAQCBz
dGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmCiB2b2lkIHNldFNoYXJlZFRp
bWVyRmlyZUludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKIHsKICAgICBBU1NFUlQoc2hhcmVkVGlt
ZXJGaXJlZEZ1bmN0aW9uKTsKLQotICAgIGlmIChzaGFyZWRUaW1lcikgewotICAgICAgICBDRlJ1
bkxvb3BUaW1lckludmFsaWRhdGUoc2hhcmVkVGltZXIpOwotICAgICAgICBDRlJlbGVhc2Uoc2hh
cmVkVGltZXIpOwotICAgIH0KLQogICAgIENGQWJzb2x1dGVUaW1lIGZpcmVEYXRlID0gQ0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbDsKLSAgICBzaGFyZWRUaW1lciA9IENGUnVu
TG9vcFRpbWVyQ3JlYXRlKDAsIGZpcmVEYXRlLCAwLCAwLCAwLCB0aW1lckZpcmVkLCAwKTsKLSAg
ICBDRlJ1bkxvb3BBZGRUaW1lcihDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHNoYXJlZFRpbWVyLCBr
Q0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotICAgIAotICAgIGlmICghUG93ZXJPYnNlcnZlcikKLSAg
ICAgICAgUG93ZXJPYnNlcnZlciA9IFBvd2VyT2JzZXJ2ZXI6OmNyZWF0ZSgpLmxlYWtQdHIoKTsK
KyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShzaGFyZWRUaW1lcigpLCBmaXJlRGF0
ZSk7CiB9CiAKIHZvaWQgc3RvcFNoYXJlZFRpbWVyKCkKIHsKLSAgICBpZiAoc2hhcmVkVGltZXIp
IHsKLSAgICAgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKHNoYXJlZFRpbWVyKTsKLSAgICAg
ICAgQ0ZSZWxlYXNlKHNoYXJlZFRpbWVyKTsKLSAgICAgICAgc2hhcmVkVGltZXIgPSAwOwotICAg
IH0KKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShzaGFyZWRUaW1lcigpLCBDRkFi
c29sdXRlVGltZUdldEN1cnJlbnQoKSArIGRpc3RhbnRGdXR1cmUpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="208919"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>