<?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>114826</bug_id>
          
          <creation_ts>2013-04-18 13:20:59 -0700</creation_ts>
          <short_desc>ThreadCondition::timedWait should use monotonicallyIncreasingTime</short_desc>
          <delta_ts>2013-04-18 15:05:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joe Mason">joenotcharles</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>anfraga</cc>
    
    <cc>ap</cc>
    
    <cc>joenotcharles</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878046</commentid>
    <comment_count>0</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2013-04-18 13:20:59 -0700</bug_when>
    <thetext>Both the pthreads and Windows implementations of ThreadCondition::timedWait use the realtime clock (ie. time returned by currentTime) for their timeout. That means that if the system time changes while timedWait is running, the condition will time out at the wrong time. (For example if the clock is set to after the target time, the condition will time out immediately; if it is set forward by an hour, the condition will not time out until it reaches the original target time, which is now more than an hour in the future.) Interval measurements such as timedWait should be based on the monotonic clock (ie. time returned by monotonicallyIncreasingTime).

That means that the semantics of the absoluteTime parameter would change to take a monotonically increasing value, this change must be reflected in all callers (such as BinarySemaphore::wait and MessageQueue::waitForMessageFilteredWithTimeout), and ultimately the absoluteTime passed to each of these functions must come from a call to monotonicallyIncreasingTime() +- an offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878102</commentid>
    <comment_count>1</comment_count>
      <attachid>198769</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2013-04-18 15:05:40 -0700</bug_when>
    <thetext>Created attachment 198769
wip patch

The attached patch shows the scale of the changes needed. It changes the name of all functions and variables which are still type &quot;double&quot; but now take a monotonic time instead of currenTime, so that the compiler can catch every reference to them and the patch shows every function affected. (Obviously this rename isn&apos;t intended to be committed, but we might consider changing monotonicallyIncreasingTime to return a different type than currentTime so that the type of time measurement in each &quot;double&quot; isn&apos;t ambiguous.)

The main thing missing from this patch is dealing with errors in the pthread_condattr_t setup (including handling platforms where CLOCK_MONOTONIC isn&apos;t available, if there are any.) And I haven&apos;t tested this at all, just checked that it compiles. But it can be a starting point for someone else to continue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198769</attachid>
            <date>2013-04-18 15:05:40 -0700</date>
            <delta_ts>2013-04-18 15:05:40 -0700</delta_ts>
            <desc>wip patch</desc>
            <filename>0001-currentTime-monotonicallyIncreasingTime.patch</filename>
            <type>text/plain</type>
            <size>9975</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">RnJvbSBkNWRhNzQxZThlYWNlYjViY2IwMDM1MjBlOGQ0OWI2NTQ5NWYwZjUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2UgTWFzb24gPGptYXNvbkBibGFja2JlcnJ5LmNvbT4KRGF0
ZTogVGh1LCAxOCBBcHIgMjAxMyAxNzoyNjo1NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGN1cnJl
bnRUaW1lIC0+IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZQoKLS0tCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5jcHAgfCAgICAyICstCiBTb3VyY2UvV1RGL3d0
Zi9NZXNzYWdlUXVldWUuaCAgICAgICAgICAgICAgICAgfCAgICA4ICsrKystLS0tCiBTb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmggICAgICAgICAgfCAgICA0ICsrLS0KIFNvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCAgICAgICAgICB8ICAgMTIgKysrKysrKyst
LS0tCiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwICAgICAgICAgICAgICAgfCAgICA4
ICsrKystLS0tCiBTb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAgICAg
fCAgICA0ICsrLS0KIFNvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmggICAg
ICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgICAg
ICB8ICAgMTYgKysrKysrKystLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25z
KCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9CbG9ja0FsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9j
a0FsbG9jYXRvci5jcHAKaW5kZXggYmYyOTc2Yi4uODE4ODFhNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcApAQCAtODYsNyArODYsNyBAQCB2b2lk
IEJsb2NrQWxsb2NhdG9yOjp3YWl0Rm9yUmVsYXRpdmVUaW1lV2hpbGVIb2xkaW5nTG9jayhkb3Vi
bGUgcmVsYXRpdmUpCiAgICAgaWYgKG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9lbXB0eVJlZ2lvbkNvbmRpdGlvbi50aW1lZFdhaXQobV9l
bXB0eVJlZ2lvbkNvbmRpdGlvbkxvY2ssIGN1cnJlbnRUaW1lKCkgKyByZWxhdGl2ZSk7CisgICAg
bV9lbXB0eVJlZ2lvbkNvbmRpdGlvbi50aW1lZFdhaXQyKG1fZW1wdHlSZWdpb25Db25kaXRpb25M
b2NrLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSArIHJlbGF0aXZlKTsKIH0KIAogdm9p
ZCBCbG9ja0FsbG9jYXRvcjo6d2FpdEZvclJlbGF0aXZlVGltZShkb3VibGUgcmVsYXRpdmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBiL1NvdXJjZS9XVEYvd3Rm
L01lc3NhZ2VRdWV1ZS5oCmluZGV4IDRmMTlhZWQuLmM1YzMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1
ZS5oCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBQYXNzT3duUHRy
PERhdGFUeXBlPiB0cnlHZXRNZXNzYWdlKCk7CiAgICAgICAgIFBhc3NPd25QdHI8RGF0YVR5cGU+
IHRyeUdldE1lc3NhZ2VJZ25vcmluZ0tpbGxlZCgpOwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQcmVkaWNhdGU+Ci0gICAgICAgIFBhc3NPd25QdHI8RGF0YVR5cGU+IHdhaXRGb3JNZXNzYWdl
RmlsdGVyZWRXaXRoVGltZW91dChNZXNzYWdlUXVldWVXYWl0UmVzdWx0JiwgUHJlZGljYXRlJiwg
ZG91YmxlIGFic29sdXRlVGltZSk7CisgICAgICAgIFBhc3NPd25QdHI8RGF0YVR5cGU+IHdhaXRG
b3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dDIoTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCYsIFBy
ZWRpY2F0ZSYsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpOwogCiAgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFByZWRpY2F0ZT4KICAgICAgICAgdm9pZCByZW1vdmVJZihQcmVkaWNhdGUmKTsKQEAgLTEz
MSwyMSArMTMxLDIxIEBAIG5hbWVzcGFjZSBXVEYgewogICAgIGlubGluZSBQYXNzT3duUHRyPERh
dGFUeXBlPiBNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZSgpCiAgICAgewog
ICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IGV4aXRSZWFzb247IAotICAgICAgICBPd25Q
dHI8RGF0YVR5cGU+IHJlc3VsdCA9IHdhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dChl
eGl0UmVhc29uLCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphbHdheXNUcnVlUHJlZGljYXRlLCBp
bmZpbml0ZVRpbWUoKSk7CisgICAgICAgIE93blB0cjxEYXRhVHlwZT4gcmVzdWx0ID0gd2FpdEZv
ck1lc3NhZ2VGaWx0ZXJlZFdpdGhUaW1lb3V0MihleGl0UmVhc29uLCBNZXNzYWdlUXVldWU8RGF0
YVR5cGU+OjphbHdheXNUcnVlUHJlZGljYXRlLCBpbmZpbml0ZVRpbWUoKSk7CiAgICAgICAgIEFT
U0VSVChleGl0UmVhc29uID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQgfHwgZXhpdFJlYXNvbiA9
PSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2UoKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcmVkaWNhdGU+Ci0gICAgaW5saW5lIFBhc3NPd25QdHI8RGF0YVR5
cGU+IE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGlt
ZW91dChNZXNzYWdlUXVldWVXYWl0UmVzdWx0JiByZXN1bHQsIFByZWRpY2F0ZSYgcHJlZGljYXRl
LCBkb3VibGUgYWJzb2x1dGVUaW1lKQorICAgIGlubGluZSBQYXNzT3duUHRyPERhdGFUeXBlPiBN
ZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQy
KE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQmIHJlc3VsdCwgUHJlZGljYXRlJiBwcmVkaWNhdGUsIGRv
dWJsZSBhYnNvbHV0ZVRpbWUpCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fbXV0
ZXgpOwogICAgICAgICBib29sIHRpbWVkT3V0ID0gZmFsc2U7CiAKICAgICAgICAgRGVxdWVDb25z
dEl0ZXJhdG9yPERhdGFUeXBlKj4gZm91bmQgPSBtX3F1ZXVlLmVuZCgpOwogICAgICAgICB3aGls
ZSAoIW1fa2lsbGVkICYmICF0aW1lZE91dCAmJiAoZm91bmQgPSBtX3F1ZXVlLmZpbmRJZihwcmVk
aWNhdGUpKSA9PSBtX3F1ZXVlLmVuZCgpKQotICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25k
aXRpb24udGltZWRXYWl0KG1fbXV0ZXgsIGFic29sdXRlVGltZSk7CisgICAgICAgICAgICB0aW1l
ZE91dCA9ICFtX2NvbmRpdGlvbi50aW1lZFdhaXQyKG1fbXV0ZXgsIGFic29sdXRlVGltZSk7CiAK
ICAgICAgICAgQVNTRVJUKCF0aW1lZE91dCB8fCBhYnNvbHV0ZVRpbWUgIT0gaW5maW5pdGVUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKaW5kZXggYWJmYzM2ZC4uYmE5
NTJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaApAQCAtMTE1LDggKzExNSw4
IEBAIHB1YmxpYzoKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KE11dGV4
JiBtdXRleCk7CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb24gd2FzIHNpZ25h
bGVkIGJlZm9yZSBhYnNvbHV0ZVRpbWUsIGZhbHNlIGlmIHRoZSBhYnNvbHV0ZVRpbWUgd2FzIHJl
YWNoZWQgb3IgaXMgaW4gdGhlIHBhc3QuCi0gICAgLy8gVGhlIGFic29sdXRlVGltZSBpcyBpbiBz
ZWNvbmRzLCBzdGFydGluZyBvbiBKYW51YXJ5IDEsIDE5NzAuIFRoZSB0aW1lIGlzIGFzc3VtZWQg
dG8gdXNlIHRoZSBzYW1lIHRpbWUgem9uZSBhcyBXVEY6OmN1cnJlbnRUaW1lKCkuCi0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgdGltZWRXYWl0KE11dGV4JiwgZG91YmxlIGFic29sdXRlVGlt
ZSk7CisgICAgLy8gVGhlIGFic29sdXRlVGltZSBpcyBpbiBzZWNvbmRzLCBvbiB0aGUgc2FtZSBz
Y2FsZSBhcyB0aGUgb3V0cHV0IG9mIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZS4KKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0aW1lZFdhaXQyKE11dGV4JiwgZG91YmxlIGFic29sdXRl
VGltZSk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2lnbmFsKCk7CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYnJvYWRjYXN0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQ
dGhyZWFkcy5jcHAKaW5kZXggNzVmYTE5ZS4uY2ZkMWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcApAQCAtMzY1LDggKzM2NSwxMiBAQCB2b2lkIE11dGV4Ojp1bmxvY2soKQog
fQogCiBUaHJlYWRDb25kaXRpb246OlRocmVhZENvbmRpdGlvbigpCi17IAotICAgIHB0aHJlYWRf
Y29uZF9pbml0KCZtX2NvbmRpdGlvbiwgTlVMTCk7Cit7CisgICAgcHRocmVhZF9jb25kYXR0cl90
IGF0dHI7CisgICAgcHRocmVhZF9jb25kYXR0cl9pbml0KCZhdHRyKTsKKyAgICBwdGhyZWFkX2Nv
bmRhdHRyX3NldGNsb2NrKCZhdHRyLCBDTE9DS19NT05PVE9OSUMpOworICAgIHB0aHJlYWRfY29u
ZF9pbml0KCZtX2NvbmRpdGlvbiwgJmF0dHIpOworICAgIHB0aHJlYWRfY29uZGF0dHJfZGVzdHJv
eSgmYXR0cik7CiB9CiAKIFRocmVhZENvbmRpdGlvbjo6flRocmVhZENvbmRpdGlvbigpCkBAIC0z
ODAsOSArMzg0LDkgQEAgdm9pZCBUaHJlYWRDb25kaXRpb246OndhaXQoTXV0ZXgmIG11dGV4KQog
ICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCAhcmVzdWx0KTsKIH0KIAotYm9vbCBUaHJlYWRDb25k
aXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitib29s
IFRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0MihNdXRleCYgbXV0ZXgsIGRvdWJsZSBhYnNvbHV0
ZVRpbWUpCiB7Ci0gICAgaWYgKGFic29sdXRlVGltZSA8IGN1cnJlbnRUaW1lKCkpCisgICAgaWYg
KGFic29sdXRlVGltZSA8IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoYWJzb2x1dGVUaW1lID4gSU5UX01BWCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1dpbi5jcHAKaW5kZXggNDllY2MxYS4uYTI1NDc1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdX
aW4uY3BwCkBAIC00NzksOSArNDc5LDkgQEAgdm9pZCBUaHJlYWRDb25kaXRpb246OndhaXQoTXV0
ZXgmIG11dGV4KQogICAgIG1fY29uZGl0aW9uLnRpbWVkV2FpdChtdXRleC5pbXBsKCksIElORklO
SVRFKTsKIH0KIAotYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgs
IGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitib29sIFRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0MihN
dXRleCYgbXV0ZXgsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpCiB7Ci0gICAgRFdPUkQgaW50ZXJ2YWwg
PSBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0SW50ZXJ2YWwoYWJzb2x1dGVUaW1lKTsKKyAgICBE
V09SRCBpbnRlcnZhbCA9IGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbDIoYWJzb2x1
dGVUaW1lKTsKIAogICAgIGlmICghaW50ZXJ2YWwpIHsKICAgICAgICAgLy8gQ29uc2lkZXIgdGhl
IHdhaXQgdG8gaGF2ZSB0aW1lZCBvdXQsIGV2ZW4gaWYgb3VyIGNvbmRpdGlvbiBoYXMgYWxyZWFk
eSBiZWVuIHNpZ25hbGVkLCB0bwpAQCAtNTAyLDkgKzUwMiw5IEBAIHZvaWQgVGhyZWFkQ29uZGl0
aW9uOjpicm9hZGNhc3QoKQogICAgIG1fY29uZGl0aW9uLnNpZ25hbCh0cnVlKTsgLy8gVW5ibG9j
ayBhbGwgdGhyZWFkcy4KIH0KIAotRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dEludGVy
dmFsKGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitEV09SRCBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0
SW50ZXJ2YWwyKGRvdWJsZSBhYnNvbHV0ZVRpbWUpCiB7Ci0gICAgZG91YmxlIGN1cnJlbnRUaW1l
ID0gV1RGOjpjdXJyZW50VGltZSgpOworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFdURjo6bW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKICAgICAvLyBUaW1lIGlzIGluIHRoZSBwYXN0
IC0gcmV0dXJuIGltbWVkaWF0ZWx5LgogICAgIGlmIChhYnNvbHV0ZVRpbWUgPCBjdXJyZW50VGlt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcAppbmRleCA1ZjYw
YWFmLi5hOGNiOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUu
Y3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBCaW5hcnlTZW1hcGhvcmU6OnNpZ25hbCgpCiAg
ICAgbV9jb25kaXRpb24uc2lnbmFsKCk7CiB9CiAKLWJvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0
KGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitib29sIEJpbmFyeVNlbWFwaG9yZTo6d2FpdDIoZG91Ymxl
IGFic29sdXRlVGltZSkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CiAKICAg
ICBib29sIHRpbWVkT3V0ID0gZmFsc2U7CiAgICAgd2hpbGUgKCFtX2lzU2V0KSB7Ci0gICAgICAg
IHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLnRpbWVkV2FpdChtX211dGV4LCBhYnNvbHV0ZVRpbWUp
OworICAgICAgICB0aW1lZE91dCA9ICFtX2NvbmRpdGlvbi50aW1lZFdhaXQyKG1fbXV0ZXgsIGFi
c29sdXRlVGltZSk7CiAgICAgICAgIGlmICh0aW1lZE91dCkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAppbmRl
eCA4ZTgyMjA3Li5hMTY2MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBo
b3JlLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIH5CaW5hcnlTZW1hcGhvcmUoKTsK
IAogICAgIHZvaWQgc2lnbmFsKCk7Ci0gICAgYm9vbCB3YWl0KGRvdWJsZSBhYnNvbHV0ZVRpbWUp
OworICAgIGJvb2wgd2FpdDIoZG91YmxlIGFic29sdXRlVGltZSk7CiAKICNpZiBQTEFURk9STShX
SU4pCiAgICAgSEFORExFIGV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9ldmVudDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKaW5kZXggNmVlMGZhNy4uODA0ZTIzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCkBAIC00NywyMiArNDcs
MjIgQEAgY2xhc3MgV29ya2VyU2hhcmVkVGltZXIgOiBwdWJsaWMgU2hhcmVkVGltZXIgewogcHVi
bGljOgogICAgIFdvcmtlclNoYXJlZFRpbWVyKCkKICAgICAgICAgOiBtX3NoYXJlZFRpbWVyRnVu
Y3Rpb24oMCkKLSAgICAgICAgLCBtX25leHRGaXJlVGltZSgwKQorICAgICAgICAsIG1fbmV4dEZp
cmVUaW1lMigwKQogICAgIHsKICAgICB9CiAKICAgICAvLyBTaGFyZWRUaW1lciBpbnRlcmZhY2Uu
CiAgICAgdmlydHVhbCB2b2lkIHNldEZpcmVkRnVuY3Rpb24odm9pZCAoKmZ1bmN0aW9uKSgpKSB7
IG1fc2hhcmVkVGltZXJGdW5jdGlvbiA9IGZ1bmN0aW9uOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEZpcmVJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpIHsgbV9uZXh0RmlyZVRpbWUgPSBpbnRlcnZh
bCArIGN1cnJlbnRUaW1lKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIHsgbV9uZXh0Rmly
ZVRpbWUgPSAwOyB9CisgICAgdmlydHVhbCB2b2lkIHNldEZpcmVJbnRlcnZhbChkb3VibGUgaW50
ZXJ2YWwpIHsgbV9uZXh0RmlyZVRpbWUyID0gaW50ZXJ2YWwgKyBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgeyBtX25leHRGaXJlVGltZTIg
PSAwOyB9CiAKLSAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gbV9zaGFyZWRUaW1lckZ1bmN0
aW9uICYmIG1fbmV4dEZpcmVUaW1lOyB9Ci0gICAgZG91YmxlIGZpcmVUaW1lKCkgeyByZXR1cm4g
bV9uZXh0RmlyZVRpbWU7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gbV9zaGFyZWRU
aW1lckZ1bmN0aW9uICYmIG1fbmV4dEZpcmVUaW1lMjsgfQorICAgIGRvdWJsZSBmaXJlVGltZTIo
KSB7IHJldHVybiBtX25leHRGaXJlVGltZTI7IH0KICAgICB2b2lkIGZpcmUoKSB7IG1fc2hhcmVk
VGltZXJGdW5jdGlvbigpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCAoKm1fc2hhcmVkVGltZXJG
dW5jdGlvbikoKTsKLSAgICBkb3VibGUgbV9uZXh0RmlyZVRpbWU7CisgICAgZG91YmxlIG1fbmV4
dEZpcmVUaW1lMjsKIH07CiAKIGNsYXNzIE1vZGVQcmVkaWNhdGUgewpAQCAtMTUzLDkgKzE1Myw5
IEBAIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlKFdvcmtl
ckNvbnRleHQqIGNvbnRleHQsIGNvbnN0IE1vCiAKICAgICBkb3VibGUgYWJzb2x1dGVUaW1lID0g
MC4wOwogICAgIGlmICh3YWl0TW9kZSA9PSBXYWl0Rm9yTWVzc2FnZSkKLSAgICAgICAgYWJzb2x1
dGVUaW1lID0gKHByZWRpY2F0ZS5pc0RlZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNB
Y3RpdmUoKSkgPyBtX3NoYXJlZFRpbWVyLT5maXJlVGltZSgpIDogTWVzc2FnZVF1ZXVlPFRhc2s+
OjppbmZpbml0ZVRpbWUoKTsKKyAgICAgICAgYWJzb2x1dGVUaW1lID0gKHByZWRpY2F0ZS5pc0Rl
ZmF1bHRNb2RlKCkgJiYgbV9zaGFyZWRUaW1lci0+aXNBY3RpdmUoKSkgPyBtX3NoYXJlZFRpbWVy
LT5maXJlVGltZTIoKSA6IE1lc3NhZ2VRdWV1ZTxUYXNrPjo6aW5maW5pdGVUaW1lKCk7CiAgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7Ci0gICAgT3duUHRyPFdvcmtlclJ1bkxvb3A6
OlRhc2s+IHRhc2sgPSBtX21lc3NhZ2VRdWV1ZS53YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRp
bWVvdXQocmVzdWx0LCBwcmVkaWNhdGUsIGFic29sdXRlVGltZSk7CisgICAgT3duUHRyPFdvcmtl
clJ1bkxvb3A6OlRhc2s+IHRhc2sgPSBtX21lc3NhZ2VRdWV1ZS53YWl0Rm9yTWVzc2FnZUZpbHRl
cmVkV2l0aFRpbWVvdXQyKHJlc3VsdCwgcHJlZGljYXRlLCBhYnNvbHV0ZVRpbWUpOwogCiAgICAg
Ly8gSWYgdGhlIGNvbnRleHQgaXMgY2xvc2luZywgZG9uJ3QgZXhlY3V0ZSBhbnkgZnVydGhlciBK
YXZhU2NyaXB0IHRhc2tzIChwZXIgc2VjdGlvbiA0LjEuMSBvZiB0aGUgV2ViIFdvcmtlcnMgc3Bl
YykuICBIb3dldmVyLCB0aGVyZSBtYXkgYmUgaW1wbGVtZW50YXRpb24gY2xlYW51cCB0YXNrcyBp
biB0aGUgcXVldWUsIHNvIGtlZXAgcnVubmluZyB0aHJvdWdoIGl0LgogCi0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>