<?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>23560</bug_id>
          
          <creation_ts>2009-01-26 17:09:50 -0800</creation_ts>
          <short_desc>Implement SharedTimer on WorkerRunLoop</short_desc>
          <delta_ts>2009-02-03 01:19:08 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>23488</dependson>
          <blocked>22718</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>107117</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-26 17:09:50 -0800</bug_when>
    <thetext>This patch depends on 23488 which is not yet landed.

It implements SharedTimer interface on WorkerRunLoop and initializes thread-specific copy of ThreadTimers for worker thread.

Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107133</commentid>
    <comment_count>1</comment_count>
      <attachid>27060</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-26 17:48:37 -0800</bug_when>
    <thetext>Created attachment 27060
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107228</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-27 12:04:32 -0800</bug_when>
    <thetext>+    class WorkerRunLoop : public SharedTimer {

Is it really right to say that a run loop is an instance of SharedTimer? This results in awkward calls like runLoop.stop() that are difficult to interpret as being timer-related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107230</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-27 12:19:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; +    class WorkerRunLoop : public SharedTimer {
&gt; 
&gt; Is it really right to say that a run loop is an instance of SharedTimer? This
&gt; results in awkward calls like runLoop.stop() that are difficult to interpret as
&gt; being timer-related.

In case it&apos;s not obvious, other options are to use private inheritance, or to have a shared timer as a data member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107233</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-27 12:25:55 -0800</bug_when>
    <thetext>Thanks guys. I think having something like a ThreadSharedTimer as a member of WorkerRunLoop will remove those methods from the run loop itself. Updated patch is coming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107245</commentid>
    <comment_count>5</comment_count>
      <attachid>27085</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-27 13:44:50 -0800</bug_when>
    <thetext>Created attachment 27085
Updated patch

Removed SharedTimer implementation into a private class. WorkerRunLoop has an instance of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107297</commentid>
    <comment_count>6</comment_count>
      <attachid>27085</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-01-27 23:31:49 -0800</bug_when>
    <thetext>Comment on attachment 27085
Updated patch

&gt; -        task-&gt;performTask(context);
&gt; +        if (result == MessageQueueTerminated)
&gt; +            break;
&gt; +        else if (result == MessageQueueMessageReceived)
&gt; +            task-&gt;performTask(context);
&gt; +        else
&gt; +            m_sharedTimer-&gt;fire();

You don&apos;t need an &quot;else&quot; after the &quot;break&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107442</commentid>
    <comment_count>7</comment_count>
      <attachid>27135</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-28 17:58:30 -0800</bug_when>
    <thetext>Created attachment 27135
Updated patch

Thanks Mark!
Updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107969</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-02-02 08:21:51 -0800</bug_when>
    <thetext>bug 23488 was resolved, this bug is not blocked anymore. Same patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108096</commentid>
    <comment_count>9</comment_count>
      <attachid>27135</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-03 00:57:16 -0800</bug_when>
    <thetext>Comment on attachment 27135
Updated patch

&gt; +    {}

We usually put braces on separate lines in this context.

&gt; +    bool isActive() { return m_sharedTimerFunction &amp;&amp; m_nextFireTime != 0; }

No need for &quot;!= 0&quot; here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108097</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-03 01:14:19 -0800</bug_when>
    <thetext>Committed revision 40532.

+        * dom/WorkerRunLoop.h:
+        Add member of type OwnPtr&lt;WorkerSharedTimer&gt;

A great comment says why a change was made, not what the change was. But I know that it&apos;s difficult to find something to say about trivial changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108098</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-03 01:19:08 -0800</bug_when>
    <thetext>And committed JavaScriptCore parts in revision 40533.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27060</attachid>
            <date>2009-01-26 17:48:37 -0800</date>
            <delta_ts>2009-01-27 13:44:50 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>sharedTimer.txt</filename>
            <type>text/plain</type>
            <size>5183</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiN2I5NjE4Li4xOGQyYWZmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDEtMjYgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTYwCisgICAgICAgIEltcGxlbWVudCBTaGFy
ZWRUaW1lciBvbiBXb3JrZXJSdW5Mb29wCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6
CisgICAgICAgIEZvcmdvdCB0byBleHBvc2UgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoKSBp
biBvbmUgb2YgcHJldmlvdXMgcGF0Y2hlcy4KKwogMjAwOS0wMS0yMyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBXWCBidWlsZC4KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCAzZWU4YjM2Li5jN2E1OTVmIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwCkBAIC0yODEsNiArMjgxLDcgQEAgX19aTjNXVEYxM3RyeUZhc3RDYWxsb2NF
bW0KIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb240d2FpdEVSTlNfNU11dGV4RQogX19aTjNXVEYx
NVRocmVhZENvbmRpdGlvbjZzaWduYWxFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjlicm9h
ZGNhc3RFdgorX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjl0aW1lZFdhaXRFUk5TXzVNdXRleEVk
CiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uQzFFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlv
bkQxRXYKIF9fWk4zV1RGMTZjYWxsT25NYWluVGhyZWFkRVBGdlB2RVMwXwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZjhlNmE1Li43NGU0
ZjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDA5LTAxLTI2ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU2MAorICAgICAg
ICBJbXBsZW1lbnQgU2hhcmVkVGltZXIgb24gV29ya2VyUnVuTG9vcC4KKworICAgICAgICAqIGRv
bS9Xb3JrZXJSdW5Mb29wLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6Oldv
cmtlclJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cnVuKToKKyAg
ICAgICAgQWRkZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhyZWFkLXNwZWNpZmljIFRocmVhZFRpbWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnNldEZpcmVUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnN0b3ApOgorICAgICAgICBTaGFyZWRUaW1lciBt
ZXRob2RzLiBUaGV5IGRvbid0IG5lZWQgYW55IGNyb3NzLXRocmVhZCBwcm90ZWN0aW9uIHNpbmNl
CisgICAgICAgIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIHVzZWQgb24gdGhlIHNhbWUgdGhyZWFk
IGFzIFdvcmtlclJ1bkxvb3AgYW5kCisgICAgICAgIGluIGZhY3QgaXQncyBoYXJkIHRvIHVzZSB0
aGVtIG91dHNpZGUgYmVjYXVzZSBUaHJlYWRUaW1lcnMgYXJlIHRocmVhZC1zZWNpZmljLgorICAg
ICAgICAqIGRvbS9Xb3JrZXJSdW5Mb29wLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW5M
b29wOjpzZXRGaXJlZEZ1bmN0aW9uKTogRGl0dG8uCisKIDIwMDktMDEtMjQgIERtaXRyeSBUaXRv
diAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmNwcCBiL1dlYkNv
cmUvZG9tL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IDk4YzJlOGQuLjM3NjZmMDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1dvcmtl
clJ1bkxvb3AuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAKICNpZiBFTkFCTEUoV09SS0VSUykKIAor
I2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKKyNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIK
ICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlclRhc2suaCIKQEAgLTM5LDE5ICs0MSwzOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK1dvcmtlclJ1bkxvb3A6OldvcmtlclJ1bkxvb3AoKQorICAgIDogbV9zaGFy
ZWRUaW1lckZ1bmN0aW9uKDApCisgICAgLCBtX25leHRGaXJlVGltZSgwKQoreworfQorCiB2b2lk
IFdvcmtlclJ1bkxvb3A6OnJ1bihXb3JrZXJDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VS
VChjb250ZXh0KTsKICAgICBBU1NFUlQoY29udGV4dC0+dGhyZWFkKCkpOwogICAgIEFTU0VSVChj
b250ZXh0LT50aHJlYWQoKS0+dGhyZWFkSUQoKSA9PSBjdXJyZW50VGhyZWFkKCkpOwotICAgIAor
IAorICAgIHRocmVhZEdsb2JhbERhdGEoKS50aHJlYWRUaW1lcnMoKS5zZXRTaGFyZWRUaW1lcih0
aGlzKTsKKwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFJlZlB0cjxXb3JrZXJUYXNrPiB0
YXNrOwotICAgICAgICBpZiAoIW1fbWVzc2FnZVF1ZXVlLndhaXRGb3JNZXNzYWdlKHRhc2spKQot
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0
OwogCi0gICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKGNvbnRleHQpOworICAgICAgICBpZiAobV9z
aGFyZWRUaW1lckZ1bmN0aW9uICYmIG1fbmV4dEZpcmVUaW1lICE9IDApCisgICAgICAgICAgICBy
ZXN1bHQgPSBtX21lc3NhZ2VRdWV1ZS53YWl0Rm9yTWVzc2FnZVRpbWVkKHRhc2ssIG1fbmV4dEZp
cmVUaW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gKG1fbWVzc2FnZVF1
ZXVlLndhaXRGb3JNZXNzYWdlKHRhc2spID8gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkIDog
TWVzc2FnZVF1ZXVlVGVybWluYXRlZCk7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBNZXNzYWdl
UXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGVsc2UgaWYgKHJl
c3VsdCA9PSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQpCisgICAgICAgICAgICB0YXNrLT5w
ZXJmb3JtVGFzayhjb250ZXh0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zaGFyZWRU
aW1lckZ1bmN0aW9uKCk7CiAgICAgfQorCisgICAgdGhyZWFkR2xvYmFsRGF0YSgpLnRocmVhZFRp
bWVycygpLnNldFNoYXJlZFRpbWVyKDApOwogfQogCiB2b2lkIFdvcmtlclJ1bkxvb3A6OnRlcm1p
bmF0ZSgpCkBAIC02NCw2ICs4NSwxNiBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrKFBh
c3NSZWZQdHI8V29ya2VyVGFzaz4gdGFzaykKICAgICBtX21lc3NhZ2VRdWV1ZS5hcHBlbmQodGFz
ayk7CiB9CiAKK3ZvaWQgV29ya2VyUnVuTG9vcDo6c2V0RmlyZVRpbWUoZG91YmxlIGZpcmVUaW1l
KQoreworICAgIG1fbmV4dEZpcmVUaW1lID0gZmlyZVRpbWU7Cit9CisKK3ZvaWQgV29ya2VyUnVu
TG9vcDo6c3RvcCgpCit7CisgICAgbV9uZXh0RmlyZVRpbWUgPSAwOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1dvcmtlclJ1bkxvb3AuaCBiL1dlYkNvcmUvZG9tL1dvcmtlclJ1bkxvb3AuaApp
bmRleCAwM2E3NDZiLi5lOTU3NWM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Xb3JrZXJSdW5M
b29wLmgKKysrIGIvV2ViQ29yZS9kb20vV29ya2VyUnVuTG9vcC5oCkBAIC0zNCw2ICszNCw3IEBA
CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAKICNpbmNsdWRlICJXb3JrZXJUYXNrLmgiCisjaW5jbHVk
ZSAiU2hhcmVkVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNDEsOSArNDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBXb3JrZXJDb250ZXh0OwogCi0gICAgY2xhc3MgV29ya2VyUnVuTG9v
cCB7CisgICAgY2xhc3MgV29ya2VyUnVuTG9vcCA6IHB1YmxpYyBTaGFyZWRUaW1lciB7CiAgICAg
cHVibGljOgotICAgICAgICBXb3JrZXJSdW5Mb29wKCkge30KKyAgICAgICAgV29ya2VyUnVuTG9v
cCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcgY2FsbC4gV2FpdHMgZm9yIHRhc2tz
IGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4KICAgICAgICAgdm9pZCBydW4oV29y
a2VyQ29udGV4dCopOwpAQCAtNTIsOSArNTMsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBib29sIHRlcm1pbmF0ZWQoKSB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsg
fQogCiAgICAgICAgIHZvaWQgcG9zdFRhc2soUGFzc1JlZlB0cjxXb3JrZXJUYXNrPik7Ci0gICAg
ICAgIAorCisgICAgICAgIC8vIFNoYXJlZFRpbWVyIGludGVyZmFjZS4KKyAgICAgICAgdmlydHVh
bCB2b2lkIHNldEZpcmVkRnVuY3Rpb24odm9pZCAoKmZ1bmN0aW9uKSgpKSB7IG1fc2hhcmVkVGlt
ZXJGdW5jdGlvbiA9IGZ1bmN0aW9uOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRGaXJlVGlt
ZShkb3VibGUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgTWVzc2FnZVF1ZXVlPFJlZlB0cjxXb3JrZXJUYXNrPiA+IG1fbWVzc2FnZVF1ZXVl
OworICAgICAgICB2b2lkICgqbV9zaGFyZWRUaW1lckZ1bmN0aW9uKSgpOworICAgICAgICBkb3Vi
bGUgbV9uZXh0RmlyZVRpbWU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27085</attachid>
            <date>2009-01-27 13:44:50 -0800</date>
            <delta_ts>2009-01-28 17:58:30 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>sharedTimer_v2.txt</filename>
            <type>text/plain</type>
            <size>5759</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiN2I5NjE4Li4xOGQyYWZmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDEtMjYgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTYwCisgICAgICAgIEltcGxlbWVudCBTaGFy
ZWRUaW1lciBvbiBXb3JrZXJSdW5Mb29wCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6
CisgICAgICAgIEZvcmdvdCB0byBleHBvc2UgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoKSBp
biBvbmUgb2YgcHJldmlvdXMgcGF0Y2hlcy4KKwogMjAwOS0wMS0yMyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBXWCBidWlsZC4KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCAzZWU4YjM2Li5jN2E1OTVmIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwCkBAIC0yODEsNiArMjgxLDcgQEAgX19aTjNXVEYxM3RyeUZhc3RDYWxsb2NF
bW0KIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb240d2FpdEVSTlNfNU11dGV4RQogX19aTjNXVEYx
NVRocmVhZENvbmRpdGlvbjZzaWduYWxFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjlicm9h
ZGNhc3RFdgorX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjl0aW1lZFdhaXRFUk5TXzVNdXRleEVk
CiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uQzFFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlv
bkQxRXYKIF9fWk4zV1RGMTZjYWxsT25NYWluVGhyZWFkRVBGdlB2RVMwXwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZjhlNmE1Li4xNjY4
MWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDA5LTAxLTI2ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU2MAorICAgICAg
ICBJbXBsZW1lbnQgU2hhcmVkVGltZXIgZm9yIFdvcmtlcnMuCisKKyAgICAgICAgKiBkb20vV29y
a2VyUnVuTG9vcC5jcHA6CisgICAgICAgIEFkZGVkIHByaXZhdGUgY2xhc3MgV29ya2VyU2hhcmVk
VGltZXIgdGhhdCBpbXBsZW1lbnRzIFNoYXJlZFRpbWVyIGludGVyZmFjZSBmb3Igd29ya2VyIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTaGFyZWRUaW1lcjo6V29ya2VyU2hhcmVk
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2hhcmVkVGltZXI6OnNldEZpcmVkRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2hhcmVkVGltZXI6OnNldEZpcmVUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNoYXJlZFRpbWVyOjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclNoYXJlZFRpbWVyOjppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJTaGFyZWRUaW1lcjo6ZmlyZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2hhcmVkVGltZXI6OmZpcmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6V29y
a2VyUnVuTG9vcCk6CisgICAgICAgIEluaXRpYWxpemVzIGEgV29ya2VyU2hhcmVkVGltZXIgaW5z
dGFuY2UuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjp+V29ya2VyUnVuTG9vcCk6
CisgICAgICAgIFRoZSBkZXN0cnVjdG9yIGlzIGhlcmUgc28gY29tcGlsZXIgaXMgb2sgd2l0aCBo
YXZpbmcgT3duUHRyPFdvcmtlclNoYXJlZFRpbWVyPiBpbiAuaCBmaWxlIHcvbyBkZWZpbmluZyBX
b3JrZXJTaGFyZWRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnJ1bik6
CisgICAgICAgIFNldC9yZXNldCBzaGFyZWQgdGltZXIgaW50ZXJmYWNlIG9uIFRocmVhZFRpbWVy
cywgdXNlIE1lc3NhZ2VRdWV1ZTo6d2FpdEZvck1lc3NhZ2VUaW1lZCgpIGlmIHRpbWVyIGlzIGFj
dGl2ZS4KKyAgICAgICAgKiBkb20vV29ya2VyUnVuTG9vcC5oOgorICAgICAgICBBZGQgbWVtYmVy
IG9mIHR5cGUgT3duUHRyPFdvcmtlclNoYXJlZFRpbWVyPgorCiAyMDA5LTAxLTI0ICBEbWl0cnkg
VGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV29ya2VyUnVuTG9vcC5jcHAgYi9X
ZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCA5OGMyZThkLi4wN2FjMDU1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmNwcAorKysgYi9XZWJDb3JlL2RvbS9X
b3JrZXJSdW5Mb29wLmNwcApAQCAtMzIsNiArMzIsOCBAQAogCiAjaWYgRU5BQkxFKFdPUktFUlMp
CiAKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiVGhyZWFkVGltZXJz
LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQu
aCIKICNpbmNsdWRlICJXb3JrZXJUYXNrLmgiCkBAIC0zOSwxOSArNDEsNjIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBXb3JrZXJTaGFyZWRUaW1lciA6IHB1YmxpYyBTaGFyZWRU
aW1lciB7CitwdWJsaWM6CisgICAgV29ya2VyU2hhcmVkVGltZXIoKQorICAgICAgICA6IG1fc2hh
cmVkVGltZXJGdW5jdGlvbigwKQorICAgICAgICAsIG1fbmV4dEZpcmVUaW1lKDApCisgICAge30K
KworICAgIC8vIFNoYXJlZFRpbWVyIGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rmly
ZWRGdW5jdGlvbih2b2lkICgqZnVuY3Rpb24pKCkpIHsgbV9zaGFyZWRUaW1lckZ1bmN0aW9uID0g
ZnVuY3Rpb247IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlyZVRpbWUoZG91YmxlIGZpcmVUaW1l
KSB7IG1fbmV4dEZpcmVUaW1lID0gZmlyZVRpbWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgp
IHsgbV9uZXh0RmlyZVRpbWUgPSAwOyB9CisgICAgCisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0
dXJuIG1fc2hhcmVkVGltZXJGdW5jdGlvbiAmJiBtX25leHRGaXJlVGltZSAhPSAwOyB9CisgICAg
ZG91YmxlIGZpcmVUaW1lKCkgeyByZXR1cm4gbV9uZXh0RmlyZVRpbWU7IH0KKyAgICB2b2lkIGZp
cmUoKSB7IG1fc2hhcmVkVGltZXJGdW5jdGlvbigpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCAo
Km1fc2hhcmVkVGltZXJGdW5jdGlvbikoKTsKKyAgICBkb3VibGUgbV9uZXh0RmlyZVRpbWU7Cit9
OworCitXb3JrZXJSdW5Mb29wOjpXb3JrZXJSdW5Mb29wKCkKKyAgICA6IG1fc2hhcmVkVGltZXIo
bmV3IFdvcmtlclNoYXJlZFRpbWVyKQoreworfQorCitXb3JrZXJSdW5Mb29wOjp+V29ya2VyUnVu
TG9vcCgpCit7Cit9CisKIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckNvbnRleHQqIGNv
bnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIEFTU0VSVChjb250ZXh0LT50aHJl
YWQoKSk7CiAgICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLT50aHJlYWRJRCgpID09IGN1cnJl
bnRUaHJlYWQoKSk7Ci0gICAgCisgCisgICAgdGhyZWFkR2xvYmFsRGF0YSgpLnRocmVhZFRpbWVy
cygpLnNldFNoYXJlZFRpbWVyKG1fc2hhcmVkVGltZXIuZ2V0KCkpOworCiAgICAgd2hpbGUgKHRy
dWUpIHsKICAgICAgICAgUmVmUHRyPFdvcmtlclRhc2s+IHRhc2s7Ci0gICAgICAgIGlmICghbV9t
ZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2UodGFzaykpCi0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisKKyAgICAgICAgaWYgKG1fc2hh
cmVkVGltZXItPmlzQWN0aXZlKCkpCisgICAgICAgICAgICByZXN1bHQgPSBtX21lc3NhZ2VRdWV1
ZS53YWl0Rm9yTWVzc2FnZVRpbWVkKHRhc2ssIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSAobV9tZXNzYWdlUXVldWUud2FpdEZv
ck1lc3NhZ2UodGFzaykgPyBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQgOiBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkKTsKIAotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayhjb250ZXh0KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCA9PSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSBNZXNzYWdlUXVldWVNZXNzYWdlUmVj
ZWl2ZWQpCisgICAgICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayhjb250ZXh0KTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9zaGFyZWRUaW1lci0+ZmlyZSgpOwogICAgIH0KKworICAgIHRo
cmVhZEdsb2JhbERhdGEoKS50aHJlYWRUaW1lcnMoKS5zZXRTaGFyZWRUaW1lcigwKTsKIH0KIAog
dm9pZCBXb3JrZXJSdW5Mb29wOjp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
V29ya2VyUnVuTG9vcC5oIGIvV2ViQ29yZS9kb20vV29ya2VyUnVuTG9vcC5oCmluZGV4IDAzYTc0
NmIuLjRlNzJjOWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1dvcmtlclJ1bkxvb3AuaAorKysg
Yi9XZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmgKQEAgLTM0LDE2ICszNCwyMCBAQAogI2lmIEVO
QUJMRShXT1JLRVJTKQogCiAjaW5jbHVkZSAiV29ya2VyVGFzay5oIgorI2luY2x1ZGUgIlNoYXJl
ZFRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBXb3JrZXJDb250ZXh0OworICAgIGNsYXNzIFdvcmtlclNoYXJlZFRp
bWVyOwogCiAgICAgY2xhc3MgV29ya2VyUnVuTG9vcCB7CiAgICAgcHVibGljOgotICAgICAgICBX
b3JrZXJSdW5Mb29wKCkge30KKyAgICAgICAgV29ya2VyUnVuTG9vcCgpOworICAgICAgICB+V29y
a2VyUnVuTG9vcCgpOwogICAgICAgICAKICAgICAgICAgLy8gQmxvY2tpbmcgY2FsbC4gV2FpdHMg
Zm9yIHRhc2tzIGFuZCB0aW1lcnMsIGludm9rZXMgdGhlIGNhbGxiYWNrcy4KICAgICAgICAgdm9p
ZCBydW4oV29ya2VyQ29udGV4dCopOwpAQCAtNTIsOSArNTYsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBib29sIHRlcm1pbmF0ZWQoKSB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5r
aWxsZWQoKTsgfQogCiAgICAgICAgIHZvaWQgcG9zdFRhc2soUGFzc1JlZlB0cjxXb3JrZXJUYXNr
Pik7Ci0gICAgICAgIAorCiAgICAgcHJpdmF0ZToKICAgICAgICAgTWVzc2FnZVF1ZXVlPFJlZlB0
cjxXb3JrZXJUYXNrPiA+IG1fbWVzc2FnZVF1ZXVlOworICAgICAgICBPd25QdHI8V29ya2VyU2hh
cmVkVGltZXI+IG1fc2hhcmVkVGltZXI7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27135</attachid>
            <date>2009-01-28 17:58:30 -0800</date>
            <delta_ts>2009-02-03 00:57:16 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>sharedTimer_v3.txt</filename>
            <type>text/plain</type>
            <size>5829</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiN2I5NjE4Li4xOGQyYWZmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDEtMjYgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTYwCisgICAgICAgIEltcGxlbWVudCBTaGFy
ZWRUaW1lciBvbiBXb3JrZXJSdW5Mb29wCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6
CisgICAgICAgIEZvcmdvdCB0byBleHBvc2UgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoKSBp
biBvbmUgb2YgcHJldmlvdXMgcGF0Y2hlcy4KKwogMjAwOS0wMS0yMyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBXWCBidWlsZC4KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCAzZWU4YjM2Li5jN2E1OTVmIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwCkBAIC0yODEsNiArMjgxLDcgQEAgX19aTjNXVEYxM3RyeUZhc3RDYWxsb2NF
bW0KIF9fWk4zV1RGMTVUaHJlYWRDb25kaXRpb240d2FpdEVSTlNfNU11dGV4RQogX19aTjNXVEYx
NVRocmVhZENvbmRpdGlvbjZzaWduYWxFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjlicm9h
ZGNhc3RFdgorX19aTjNXVEYxNVRocmVhZENvbmRpdGlvbjl0aW1lZFdhaXRFUk5TXzVNdXRleEVk
CiBfX1pOM1dURjE1VGhyZWFkQ29uZGl0aW9uQzFFdgogX19aTjNXVEYxNVRocmVhZENvbmRpdGlv
bkQxRXYKIF9fWk4zV1RGMTZjYWxsT25NYWluVGhyZWFkRVBGdlB2RVMwXwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZjhlNmE1Li4xNjY4
MWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDA5LTAxLTI2ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU2MAorICAgICAg
ICBJbXBsZW1lbnQgU2hhcmVkVGltZXIgZm9yIFdvcmtlcnMuCisKKyAgICAgICAgKiBkb20vV29y
a2VyUnVuTG9vcC5jcHA6CisgICAgICAgIEFkZGVkIHByaXZhdGUgY2xhc3MgV29ya2VyU2hhcmVk
VGltZXIgdGhhdCBpbXBsZW1lbnRzIFNoYXJlZFRpbWVyIGludGVyZmFjZSBmb3Igd29ya2VyIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTaGFyZWRUaW1lcjo6V29ya2VyU2hhcmVk
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2hhcmVkVGltZXI6OnNldEZpcmVkRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2hhcmVkVGltZXI6OnNldEZpcmVUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNoYXJlZFRpbWVyOjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclNoYXJlZFRpbWVyOjppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJTaGFyZWRUaW1lcjo6ZmlyZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2hhcmVkVGltZXI6OmZpcmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6V29y
a2VyUnVuTG9vcCk6CisgICAgICAgIEluaXRpYWxpemVzIGEgV29ya2VyU2hhcmVkVGltZXIgaW5z
dGFuY2UuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjp+V29ya2VyUnVuTG9vcCk6
CisgICAgICAgIFRoZSBkZXN0cnVjdG9yIGlzIGhlcmUgc28gY29tcGlsZXIgaXMgb2sgd2l0aCBo
YXZpbmcgT3duUHRyPFdvcmtlclNoYXJlZFRpbWVyPiBpbiAuaCBmaWxlIHcvbyBkZWZpbmluZyBX
b3JrZXJTaGFyZWRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnJ1bik6
CisgICAgICAgIFNldC9yZXNldCBzaGFyZWQgdGltZXIgaW50ZXJmYWNlIG9uIFRocmVhZFRpbWVy
cywgdXNlIE1lc3NhZ2VRdWV1ZTo6d2FpdEZvck1lc3NhZ2VUaW1lZCgpIGlmIHRpbWVyIGlzIGFj
dGl2ZS4KKyAgICAgICAgKiBkb20vV29ya2VyUnVuTG9vcC5oOgorICAgICAgICBBZGQgbWVtYmVy
IG9mIHR5cGUgT3duUHRyPFdvcmtlclNoYXJlZFRpbWVyPgorCiAyMDA5LTAxLTI0ICBEbWl0cnkg
VGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV29ya2VyUnVuTG9vcC5jcHAgYi9X
ZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCA5OGMyZThkLi5jMjVjMWEzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmNwcAorKysgYi9XZWJDb3JlL2RvbS9X
b3JrZXJSdW5Mb29wLmNwcApAQCAtMzIsNiArMzIsOCBAQAogCiAjaWYgRU5BQkxFKFdPUktFUlMp
CiAKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiVGhyZWFkVGltZXJz
LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQu
aCIKICNpbmNsdWRlICJXb3JrZXJUYXNrLmgiCkBAIC0zOSwxOSArNDEsNjUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBXb3JrZXJTaGFyZWRUaW1lciA6IHB1YmxpYyBTaGFyZWRU
aW1lciB7CitwdWJsaWM6CisgICAgV29ya2VyU2hhcmVkVGltZXIoKQorICAgICAgICA6IG1fc2hh
cmVkVGltZXJGdW5jdGlvbigwKQorICAgICAgICAsIG1fbmV4dEZpcmVUaW1lKDApCisgICAge30K
KworICAgIC8vIFNoYXJlZFRpbWVyIGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rmly
ZWRGdW5jdGlvbih2b2lkICgqZnVuY3Rpb24pKCkpIHsgbV9zaGFyZWRUaW1lckZ1bmN0aW9uID0g
ZnVuY3Rpb247IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlyZVRpbWUoZG91YmxlIGZpcmVUaW1l
KSB7IG1fbmV4dEZpcmVUaW1lID0gZmlyZVRpbWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgp
IHsgbV9uZXh0RmlyZVRpbWUgPSAwOyB9CisgICAgCisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0
dXJuIG1fc2hhcmVkVGltZXJGdW5jdGlvbiAmJiBtX25leHRGaXJlVGltZSAhPSAwOyB9CisgICAg
ZG91YmxlIGZpcmVUaW1lKCkgeyByZXR1cm4gbV9uZXh0RmlyZVRpbWU7IH0KKyAgICB2b2lkIGZp
cmUoKSB7IG1fc2hhcmVkVGltZXJGdW5jdGlvbigpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCAo
Km1fc2hhcmVkVGltZXJGdW5jdGlvbikoKTsKKyAgICBkb3VibGUgbV9uZXh0RmlyZVRpbWU7Cit9
OworCitXb3JrZXJSdW5Mb29wOjpXb3JrZXJSdW5Mb29wKCkKKyAgICA6IG1fc2hhcmVkVGltZXIo
bmV3IFdvcmtlclNoYXJlZFRpbWVyKQoreworfQorCitXb3JrZXJSdW5Mb29wOjp+V29ya2VyUnVu
TG9vcCgpCit7Cit9CisKIHZvaWQgV29ya2VyUnVuTG9vcDo6cnVuKFdvcmtlckNvbnRleHQqIGNv
bnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIEFTU0VSVChjb250ZXh0LT50aHJl
YWQoKSk7CiAgICAgQVNTRVJUKGNvbnRleHQtPnRocmVhZCgpLT50aHJlYWRJRCgpID09IGN1cnJl
bnRUaHJlYWQoKSk7Ci0gICAgCisgCisgICAgdGhyZWFkR2xvYmFsRGF0YSgpLnRocmVhZFRpbWVy
cygpLnNldFNoYXJlZFRpbWVyKG1fc2hhcmVkVGltZXIuZ2V0KCkpOworCiAgICAgd2hpbGUgKHRy
dWUpIHsKICAgICAgICAgUmVmUHRyPFdvcmtlclRhc2s+IHRhc2s7Ci0gICAgICAgIGlmICghbV9t
ZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2UodGFzaykpCi0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisKKyAgICAgICAgaWYgKG1fc2hh
cmVkVGltZXItPmlzQWN0aXZlKCkpCisgICAgICAgICAgICByZXN1bHQgPSBtX21lc3NhZ2VRdWV1
ZS53YWl0Rm9yTWVzc2FnZVRpbWVkKHRhc2ssIG1fc2hhcmVkVGltZXItPmZpcmVUaW1lKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSAobV9tZXNzYWdlUXVldWUud2FpdEZv
ck1lc3NhZ2UodGFzaykgPyBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQgOiBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkKTsKIAotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayhjb250ZXh0KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCA9PSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0ID09IE1lc3NhZ2VRdWV1ZU1lc3Nh
Z2VSZWNlaXZlZCkKKyAgICAgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKGNvbnRleHQpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChyZXN1bHQgPT0gTWVzc2FnZVF1ZXVlVGlt
ZW91dCk7CisgICAgICAgICAgICBtX3NoYXJlZFRpbWVyLT5maXJlKCk7CisgICAgICAgIH0KICAg
ICB9CisKKyAgICB0aHJlYWRHbG9iYWxEYXRhKCkudGhyZWFkVGltZXJzKCkuc2V0U2hhcmVkVGlt
ZXIoMCk7CiB9CiAKIHZvaWQgV29ya2VyUnVuTG9vcDo6dGVybWluYXRlKCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL1dvcmtlclJ1bkxvb3AuaCBiL1dlYkNvcmUvZG9tL1dvcmtlclJ1bkxvb3Au
aAppbmRleCAwM2E3NDZiLi40ZTcyYzllIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Xb3JrZXJS
dW5Mb29wLmgKKysrIGIvV2ViQ29yZS9kb20vV29ya2VyUnVuTG9vcC5oCkBAIC0zNCwxNiArMzQs
MjAgQEAKICNpZiBFTkFCTEUoV09SS0VSUykKIAogI2luY2x1ZGUgIldvcmtlclRhc2suaCIKKyNp
bmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgV29ya2VyQ29udGV4dDsKKyAgICBjbGFzcyBX
b3JrZXJTaGFyZWRUaW1lcjsKIAogICAgIGNsYXNzIFdvcmtlclJ1bkxvb3AgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgV29ya2VyUnVuTG9vcCgpIHt9CisgICAgICAgIFdvcmtlclJ1bkxvb3AoKTsK
KyAgICAgICAgfldvcmtlclJ1bkxvb3AoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEJsb2NraW5n
IGNhbGwuIFdhaXRzIGZvciB0YXNrcyBhbmQgdGltZXJzLCBpbnZva2VzIHRoZSBjYWxsYmFja3Mu
CiAgICAgICAgIHZvaWQgcnVuKFdvcmtlckNvbnRleHQqKTsKQEAgLTUyLDkgKzU2LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCB0ZXJtaW5hdGVkKCkgeyByZXR1cm4gbV9t
ZXNzYWdlUXVldWUua2lsbGVkKCk7IH0KIAogICAgICAgICB2b2lkIHBvc3RUYXNrKFBhc3NSZWZQ
dHI8V29ya2VyVGFzaz4pOwotICAgICAgICAKKwogICAgIHByaXZhdGU6CiAgICAgICAgIE1lc3Nh
Z2VRdWV1ZTxSZWZQdHI8V29ya2VyVGFzaz4gPiBtX21lc3NhZ2VRdWV1ZTsKKyAgICAgICAgT3du
UHRyPFdvcmtlclNoYXJlZFRpbWVyPiBtX3NoYXJlZFRpbWVyOwogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="13039"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>