<?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>42826</bug_id>
          
          <creation_ts>2010-07-22 08:17:04 -0700</creation_ts>
          <short_desc>Crash in thread pool because WorkQueue keeps waiting on closed HANDLEs</short_desc>
          <delta_ts>2010-09-08 14:45:52 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43150</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254799</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-22 08:17:04 -0700</bug_when>
    <thetext>There&apos;s no way to tell WorkQueue to stop waiting on a particular HANDLE. This means that users of WorkQueue either have to leak their HANDLEs (yuck) or close their HANDLEs while WorkQueue is still waiting on them, which leads to crashes in WaitForMultipleObjects (also yuck).

We should add a way to tell WorkQueue to stop waiting on a particular handle so that it can be closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254813</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-22 08:30:42 -0700</bug_when>
    <thetext>It&apos;s possible that this is a cause of bug 42785. See discussion in that bug for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254817</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-22 08:31:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/8222253&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254822</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-22 08:39:15 -0700</bug_when>
    <thetext>See bug 42785 comments 1 through 8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254823</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-22 08:40:41 -0700</bug_when>
    <thetext>(In reply to bug 42785 comment #8)
&gt; I think using a pair of events will work. The first event will be used to tell the work queue thread to stop waiting. The second event will be used to tell the main thread that waiting has stopped.

Anders informed me that this is not a good strategy. Waiting on the work queue thread is dangerous because the work queue thread might wait on the first thread, resulting in a deadlock.

I think adding an unregisterAndCloseHandle function to WorkQueue might be the way to go. We&apos;d add the handle to a m_handlesToClose Vector and signal m_performWorkEvent. Then the work queue thread would close all handles in m_handlesToClose when it wakes up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256222</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-26 14:00:45 -0700</bug_when>
    <thetext>Fixing this doesn&apos;t seem to fix bug 42785.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266198</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-18 10:16:08 -0700</bug_when>
    <thetext>*** Bug 43148 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266398</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-18 14:56:00 -0700</bug_when>
    <thetext>I&apos;ve been working on switching over to using an I/O completion port in WorkQueue. This would make it unnecessary to unregister a HANDLE; you can just close it and stop worrying.

However, I&apos;m seeing spurious reads in the web process. I.e., the web process will request 1 byte of the next message from the pipe, and then will be told that 207 bytes were read. This doesn&apos;t make any sense! Windows shouldn&apos;t be reading more than we asked it to; where would it store the data?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270656</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-27 12:26:32 -0700</bug_when>
    <thetext>I&apos;m going to base the fix for this on the fix for bug 43150.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270666</commentid>
    <comment_count>9</comment_count>
      <attachid>65752</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-27 12:35:47 -0700</bug_when>
    <thetext>Created attachment 65752
Teach WorkQueue how to stop waiting on objects on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270765</commentid>
    <comment_count>10</comment_count>
      <attachid>65752</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-27 14:41:07 -0700</bug_when>
    <thetext>Comment on attachment 65752
Teach WorkQueue how to stop waiting on objects on Windows

This patch introduces a crash due to WorkItemWin being destroyed when it is currently being used in handleCallback.

To fix this we shouldn&apos;t destroy the WorkItemWin until we&apos;ve unregistered the wait.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276033</commentid>
    <comment_count>11</comment_count>
      <attachid>66933</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-08 13:50:32 -0700</bug_when>
    <thetext>Created attachment 66933
Teach WorkQueue how to stop waiting on objects on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276063</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-08 14:19:03 -0700</bug_when>
    <thetext>Committed r67013: &lt;http://trac.webkit.org/changeset/67013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276083</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-08 14:45:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67013 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67013
http://trac.webkit.org/changeset/67014</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65752</attachid>
            <date>2010-08-27 12:35:47 -0700</date>
            <delta_ts>2010-09-08 13:50:27 -0700</delta_ts>
            <desc>Teach WorkQueue how to stop waiting on objects on Windows</desc>
            <filename>bug-42826-20100827153543.patch</filename>
            <type>text/plain</type>
            <size>8685</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NjA0MDU0ODM2M2UxOWM5YzFhZjUzNGE1OGU0YWQxOGEwNGY4NGE3Zi4uYWZlZDZhNmFmZmZjMzQ5
NmFlMGQ0MmIwMDkzNDUxMDUzYzI3Y2IzYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NiBAQAogMjAxMC0wOC0yNyAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAgICAgICAgVGVhY2ggV29ya1F1ZXVlIGhv
dyB0byBzdG9wIHdhaXRpbmcgb24gb2JqZWN0cyBvbiBXaW5kb3dzCisKKyAgICAgICAgRml4ZXMg
PGh0dHA6Ly93ZWJraXQub3JnL2IvNDI4MjY+IDxyZGFyOi8vcHJvYmxlbS84MjIyMjUzPiBQb3Rl
bnRpYWwKKyAgICAgICAgY3Jhc2ggaW4gdGhyZWFkIHBvb2wgYmVjYXVzZSBXb3JrUXVldWUga2Vl
cHMgd2FpdGluZyBvbiBjbG9zZWQgSEFORExFcworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldp
bi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUp
OiBDaGFuZ2VkIHRvIGNhbGwKKyAgICAgICAgV29ya1F1ZXVlOjp1bnJlZ2lzdGVyQW5kQ2xvc2VI
YW5kbGUgaW5zdGVhZCBvZiBjbG9zaW5nIG91ciBoYW5kbGVzCisgICAgICAgIG1hbnVhbGx5Lgor
CisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6IFJlbmFtZWQgdW5yZWdpc3RlckhhbmRs
ZSB0bworICAgICAgICB1bnJlZ2lzdGVyQW5kQ2xvc2VIYW5kbGUuIEFkZGVkIG1fcGVyZm9ybVdv
cmtXYWl0SGFuZGxlLiBDaGFuZ2UKKyAgICAgICAgbV9oYW5kbGVzIHRvIGhvbGQgYm90aCBhIHdh
aXQgaGFuZGxlIGFuZCBhIFdvcmtJdGVtV2luIGZvciBlYWNoCisgICAgICAgIHJlZ2lzdGVyZWQg
aGFuZGxlLgorCisgICAgICAgICogUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHA6CisgICAg
ICAgICh1bnJlZ2lzdGVyV2FpdEFuZENsb3NlSGFuZGxlQ2FsbGJhY2spOiBBZGRlZC4gTWFrZXMg
YSBibG9ja2luZyBjYWxsCisgICAgICAgIHRvIDo6VW5yZWdpc3RlcldhaXRFeCB0byBjYW5jZWwg
dGhlIHdhaXQsIHRoZW4gY2xvc2VzIHRoZSBhc3NvY2lhdGVkCisgICAgICAgIGhhbmRsZS4KKyAg
ICAgICAgKHVucmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGUpOiBBZGRlZC4gOjpRdWV1ZVVzZXJX
b3JrSXRlbSB0byBzY2hlZHVsZQorICAgICAgICB1bnJlZ2lzdGVyV2FpdEFuZENsb3NlSGFuZGxl
Q2FsbGJhY2sgdG8gYmUgY2FsbGVkIGFzeW5jaHJvbm91c2x5IG9uIGEKKyAgICAgICAgdGhyZWFk
IHBvb2wgd29ya2VyIHRocmVhZC4gV2UgZG8gdGhlIHdvcmsgYXN5bmNocm9ub3VzbHkgYmVjYXVz
ZSB0aGlzCisgICAgICAgIGZ1bmN0aW9uIG1pZ2h0IGJlIGNhbGxlZCB3aXRoaW4gYSBjYWxsYmFj
ayBmb3IgdGhlIHdhaXQgd2UncmUgdHJ5aW5nCisgICAgICAgIHRvIGNhbmNlbCwgYW5kIG1ha2lu
ZyBhIGJsb2NraW5nIGNhbGwgdG8gOjpVbnJlZ2lzdGVyV2FpdEV4IHdpbGwKKyAgICAgICAgcmVz
dWx0IGluIGEgZGVhZGxvY2sgaW4gdGhhdCBzaXR1YXRpb24uCisgICAgICAgIChXb3JrUXVldWU6
OnJlZ2lzdGVySGFuZGxlKTogQ2hhbmdlZCB0byBzdG9yZSB0aGUgd2FpdCBoYW5kbGUgaW4KKyAg
ICAgICAgbV9oYW5kbGVzLgorICAgICAgICAoV29ya1F1ZXVlOjp1bnJlZ2lzdGVyQW5kQ2xvc2VI
YW5kbGUpOiBBZGRlZC4gUmVtb3ZlcyB0aGUgd2FpdCBoYW5kbGUKKyAgICAgICAgYW5kIGl0ZW0g
ZnJvbSBtX2hhbmRsZXMsIHRoZW4gcGFzc2VzIHRoZSB3YWl0IGhhbmRsZSBhbmQgdGhlIHdhaXRl
ZC1vbgorICAgICAgICBoYW5kbGUgdG8gdW5yZWdpc3RlcldhaXRBbmRDbG9zZUhhbmRsZS4KKyAg
ICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKTogQ2hhbmdlZCB0byBzdG9yZSB0
aGUgd2FpdCBoYW5kbGUgZm9yCisgICAgICAgIG1fcGVyZm9ybVdvcmtFdmVudCBpbiBtX3BlcmZv
cm1Xb3JrV2FpdEhhbmRsZS4KKyAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRl
KTogQ2hhbmdlZCB0byBjYWxsCisgICAgICAgIHVucmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGUg
aW5zdGVhZCBvZiBjbG9zaW5nIG1fcGVyZm9ybVdvcmtFdmVudAorICAgICAgICBtYW51YWxseS4g
QWxzbyBhZGRlZCBhbiBhc3NlcnRpb24gdGhhdCBhbGwgaGFuZGxlcyBoYXZlIGJlZW4KKyAgICAg
ICAgdW5yZWdpc3RlcmVkIGJ5IHRoaXMgcG9pbnQuCisKKzIwMTAtMDgtMjcgIEFkYW0gUm9iZW4g
IDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIFVzZSB0aGUgV2luZG93cyB0aHJlYWQgcG9v
bCBpbnN0ZWFkIG9mIGEgZGVkaWNhdGVkIHRocmVhZCBmb3IKICAgICAgICAgV29ya1F1ZXVlIG9u
IFdpbmRvd3MKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25u
ZWN0aW9uV2luLmNwcCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldp
bi5jcHAKaW5kZXggZjFjYzQ2YzQ3OWFhM2E4ZmU4NDgxOWMwNDM4MGY1ZDA1ODA1ZjAzOS4uZTJm
MWViYmYzYjExNjkzMjdhMWMwNTY2Nzc2ZjAzNjE3NzVhZTFkOCAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcAorKysgYi9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCkBAIC05OCwxMiArOTgsMTAgQEAg
dm9pZCBDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogICAgIGlmIChtX2Nvbm5lY3Rp
b25QaXBlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQogICAgICAgICByZXR1cm47CiAKLSAgICAv
LyBGSVhNRTogVW5yZWdpc3RlciB0aGUgaGFuZGxlcy4KLQotICAgIDo6Q2xvc2VIYW5kbGUobV9y
ZWFkU3RhdGUuaEV2ZW50KTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS51bnJlZ2lzdGVyQW5kQ2xv
c2VIYW5kbGUobV9yZWFkU3RhdGUuaEV2ZW50KTsKICAgICBtX3JlYWRTdGF0ZS5oRXZlbnQgPSAw
OwogCi0gICAgOjpDbG9zZUhhbmRsZShtX3dyaXRlU3RhdGUuaEV2ZW50KTsKKyAgICBtX2Nvbm5l
Y3Rpb25RdWV1ZS51bnJlZ2lzdGVyQW5kQ2xvc2VIYW5kbGUobV93cml0ZVN0YXRlLmhFdmVudCk7
CiAgICAgbV93cml0ZVN0YXRlLmhFdmVudCA9IDA7CiAKICAgICA6OkNsb3NlSGFuZGxlKG1fY29u
bmVjdGlvblBpcGUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBi
L1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKaW5kZXggNDk5NDM0YjdjZmI5MDJhNDZjNzhh
ZDcxMzI0MjQyMzZiZjkxMjQ1Yi4uNTkwYzE0NDMzZTNjYWNmYWJjMTM1NDhiZGFmM2U1MDEzNDE5
ZDg1YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAorKysgYi9XZWJL
aXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVucmVnaXN0ZXJNYWNoUG9ydEV2ZW50SGFuZGxlcihtYWNoX3BvcnRfdCk7CiAjZWxpZiBQ
TEFURk9STShXSU4pCiAgICAgdm9pZCByZWdpc3RlckhhbmRsZShIQU5ETEUsIFBhc3NPd25QdHI8
V29ya0l0ZW0+KTsKLSAgICB2b2lkIHVucmVnaXN0ZXJIYW5kbGUoSEFORExFKTsKKyAgICB2b2lk
IHVucmVnaXN0ZXJBbmRDbG9zZUhhbmRsZShIQU5ETEUpOwogI2VsaWYgUExBVEZPUk0oUVQpCiAg
ICAgdm9pZCBjb25uZWN0U2lnbmFsKFFPYmplY3QqLCBjb25zdCBjaGFyKiBzaWduYWwsIFBhc3NP
d25QdHI8V29ya0l0ZW0+KTsKICAgICB2b2lkIGRpc2Nvbm5lY3RTaWduYWwoUU9iamVjdCosIGNv
bnN0IGNoYXIqIHNpZ25hbCk7CkBAIC0xMTUsNiArMTE1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpOwogCiAgICAgSEFORExFIG1fcGVy
Zm9ybVdvcmtFdmVudDsKKyAgICBIQU5ETEUgbV9wZXJmb3JtV29ya1dhaXRIYW5kbGU7CiAKICAg
ICB2b2xhdGlsZSBMT05HIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZDsKIApAQCAtMTIyLDcgKzEy
Myw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxXb3JrSXRlbVdpbj4gPiBtX3dvcmtJ
dGVtUXVldWU7CiAKICAgICBNdXRleCBtX2hhbmRsZXNMb2NrOwotICAgIEhhc2hNYXA8SEFORExF
LCBSZWZQdHI8V29ya0l0ZW1XaW4+ID4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8SEFORExFLCBz
dGQ6OnBhaXI8SEFORExFLCBSZWZQdHI8V29ya0l0ZW1XaW4+ID4gPiBtX2hhbmRsZXM7CiAjZWxp
ZiBQTEFURk9STShRVCkKICAgICBjbGFzcyBXb3JrSXRlbVF0OwogICAgIEhhc2hNYXA8UU9iamVj
dCosIFdvcmtJdGVtUXQqPiBtX3NpZ25hbExpc3RlbmVyczsKZGlmZiAtLWdpdCBhL1dlYktpdDIv
UGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3Jr
UXVldWVXaW4uY3BwCmluZGV4IDI4NGQ3YmFlMTA3MGVkYWI1MDExYzRiODgzM2Q3MjVjZGE3YmIx
OGIuLjBlNGZjZDlhZjIwMGI4NWQ2N2ZmMTk5MTQwYzQ3MDI4OTU4NDU3NDEgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHAKKysrIGIvV2ViS2l0Mi9QbGF0
Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAtMjcsNiArMjcsMzggQEAKIAogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KIAorc3RydWN0IFVucmVnaXN0ZXJXYWl0Q29udGV4dCB7CisgICAg
SEFORExFIHdhaXRIYW5kbGU7CisgICAgSEFORExFIGhhbmRsZVRvQ2xvc2U7Cit9OworCitzdGF0
aWMgRFdPUkQgV0lOQVBJIHVucmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGVDYWxsYmFjayhMUFZP
SUQgY3R4dCkKK3sKKyAgICBBU1NFUlRfQVJHKGN0eHQsIGN0eHQpOworICAgIE93blB0cjxVbnJl
Z2lzdGVyV2FpdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdFB0cihzdGF0aWNfY2FzdDxVbnJlZ2lz
dGVyV2FpdENvbnRleHQqPihjdHh0KSk7CisKKyAgICAvLyBOb3cgdGhhdCB3ZSBrbm93IHdlJ3Jl
IG5vdCBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgd2FpdCB3ZSdyZSB1bnJlZ2lzdGVy
aW5nLCB3ZSBjYW4KKyAgICAvLyBtYWtlIGEgYmxvY2tpbmcgY2FsbCB0byA6OlVucmVnaXN0ZXJX
YWl0RXguCisgICAgaWYgKCE6OlVucmVnaXN0ZXJXYWl0RXgoY29udGV4dC0+d2FpdEhhbmRsZSwg
SU5WQUxJRF9IQU5ETEVfVkFMVUUpKSB7CisgICAgICAgIERXT1JEIGVycm9yID0gOjpHZXRMYXN0
RXJyb3IoKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIDo6Q2xv
c2VIYW5kbGUoY29udGV4dC0+aGFuZGxlVG9DbG9zZSk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0
YXRpYyB2b2lkIHVucmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGUoSEFORExFIHdhaXRIYW5kbGUs
IEhBTkRMRSBoYW5kbGVUb0Nsb3NlKQoreworICAgIC8vIFdlJ3JlIGdvaW5nIHRvIG1ha2UgYSBi
bG9ja2luZyBjYWxsIHRvIDo6VW5yZWdpc3RlcldhaXRFeCBiZWZvcmUgY2xvc2luZyB0aGUgaGFu
ZGxlLiBJZiB3ZQorICAgIC8vIGRvIHRoaXMgb24gdGhlIGN1cnJlbnQgdGhyZWFkLCB3ZSdsbCBk
ZWFkbG9jayBpZiB3ZSdyZSBjdXJyZW50bHkgaW4gYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IKKyAg
ICAvLyB0aGUgd2FpdCB3ZSdyZSB1bnJlZ2lzdGVyaW5nLiBTbyBpbnN0ZWFkIHdlIGRvIGl0IGFz
eW5jaHJvbm91c2x5IG9uIHNvbWUgb3RoZXIgd29ya2VyIHRocmVhZC4KKworICAgIE93blB0cjxV
bnJlZ2lzdGVyV2FpdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdFB0cihuZXcgVW5yZWdpc3Rlcldh
aXRDb250ZXh0KTsKKyAgICBjb250ZXh0LT53YWl0SGFuZGxlID0gd2FpdEhhbmRsZTsKKyAgICBj
b250ZXh0LT5oYW5kbGVUb0Nsb3NlID0gaGFuZGxlVG9DbG9zZTsKKyAgICA6OlF1ZXVlVXNlcldv
cmtJdGVtKHVucmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGVDYWxsYmFjaywgY29udGV4dC5sZWFr
UHRyKCksIFdUX0VYRUNVVEVERUZBVUxUKTsKK30KKwogaW5saW5lIFdvcmtRdWV1ZTo6V29ya0l0
ZW1XaW46OldvcmtJdGVtV2luKFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0sIFdvcmtRdWV1ZSog
cXVldWUpCiAgICAgOiBtX2l0ZW0oaXRlbSkKICAgICAsIG1fcXVldWUocXVldWUpCkBAIC02Nywx
OCArOTksMjkgQEAgdm9pZCBXb3JrUXVldWU6OnJlZ2lzdGVySGFuZGxlKEhBTkRMRSBoYW5kbGUs
IFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0pCiB7CiAgICAgUmVmUHRyPFdvcmtJdGVtV2luPiBp
dGVtV2luID0gV29ya0l0ZW1XaW46OmNyZWF0ZShpdGVtLCB0aGlzKTsKIAotICAgIC8vIEFkZCB0
aGUgaXRlbS4KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2hhbmRsZXNMb2Nr
KTsKLSAgICAgICAgbV9oYW5kbGVzLnNldChoYW5kbGUsIGl0ZW1XaW4pOwotICAgIH0KKyAgICAv
LyBBZGQgdGhlIGhhbmRsZSBhbmQgaXRlbSBpbnRvIG91ciBtYXAgd2l0aCBhIG51bGwgd2FpdCBo
YW5kbGUuIFdlJ2xsIGZpbGwgaW4gdGhlIHdhaXQgaGFuZGxlCisgICAgLy8gYmVsb3cuIFRoaXMg
Z3VhcmFudGVlcyB0aGF0IHRoZSBoYW5kbGUgYW5kIGl0ZW0gd2lsbCBiZSBpbiBtX2hhbmRsZXMg
dGhlIGZpcnN0IHRpbWUgdGhlCisgICAgLy8gaGFuZGxlIGlzIHNpZ25hbGVkLgorICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2hhbmRsZXNMb2NrKTsKKyAgICBIQU5ETEUmIHdhaXRIYW5kbGUgPSBt
X2hhbmRsZXMuc2V0KGhhbmRsZSwgbWFrZV9wYWlyKHN0YXRpY19jYXN0PEhBTkRMRT4oMCksIGl0
ZW1XaW4pKS5maXJzdC0+Zmlyc3Q7CiAKLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBob2xkIG9u
dG8gd2FpdEhhbmRsZSBzbyB0aGF0IHdlIGNhbiB1bnJlZ2lzdGVyIHRoZSB3YWl0IGxhdGVyLgot
ICAgIEhBTkRMRSB3YWl0SGFuZGxlOwogICAgIGlmICghOjpSZWdpc3RlcldhaXRGb3JTaW5nbGVP
YmplY3QoJndhaXRIYW5kbGUsIGhhbmRsZSwgaGFuZGxlQ2FsbGJhY2ssIGl0ZW1XaW4uZ2V0KCks
IElORklOSVRFLCBXVF9FWEVDVVRFREVGQVVMVCkpIHsKICAgICAgICAgRFdPUkQgZXJyb3IgPSA6
OkdldExhc3RFcnJvcigpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CisK
K30KKwordm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJBbmRDbG9zZUhhbmRsZShIQU5ETEUgaGFu
ZGxlKQoreworICAgIHBhaXI8SEFORExFLCBSZWZQdHI8V29ya0l0ZW1XaW4+ID4gd2FpdEhhbmRs
ZUFuZEl0ZW07CisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9oYW5kbGVzTG9j
ayk7CisgICAgICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBtX2hhbmRsZXMuY29udGFpbnMoaGFuZGxl
KSk7CisgICAgICAgIHdhaXRIYW5kbGVBbmRJdGVtID0gbV9oYW5kbGVzLnRha2UoaGFuZGxlKTsK
KyAgICB9CisKKyAgICB1bnJlZ2lzdGVyV2FpdEFuZENsb3NlSGFuZGxlKHdhaXRIYW5kbGVBbmRJ
dGVtLmZpcnN0LCBoYW5kbGUpOwogfQogCiB2b2lkIFdvcmtRdWV1ZTo6ZXZlbnRDYWxsYmFjayh2
b2lkKiBjb250ZXh0LCBCT09MRUFOIHRpbWVyT3JXYWl0RmlyZWQpCkBAIC0xMzMsOSArMTc2LDcg
QEAgdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lKQog
ICAgIC8vIENyZWF0ZSBvdXIgZXZlbnQuCiAgICAgbV9wZXJmb3JtV29ya0V2ZW50ID0gOjpDcmVh
dGVFdmVudFcoMCwgRkFMU0UsIEZBTFNFLCAwKTsKIAotICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRv
IGhvbGQgb250byB3YWl0SGFuZGxlIHNvIHRoYXQgd2UgY2FuIHVucmVnaXN0ZXIgdGhlIHdhaXQg
bGF0ZXIuCi0gICAgSEFORExFIHdhaXRIYW5kbGU7Ci0gICAgaWYgKCE6OlJlZ2lzdGVyV2FpdEZv
clNpbmdsZU9iamVjdCgmd2FpdEhhbmRsZSwgbV9wZXJmb3JtV29ya0V2ZW50LCBldmVudENhbGxi
YWNrLCB0aGlzLCBJTkZJTklURSwgV1RfRVhFQ1VURURFRkFVTFQpKSB7CisgICAgaWYgKCE6OlJl
Z2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdCgmbV9wZXJmb3JtV29ya1dhaXRIYW5kbGUsIG1fcGVy
Zm9ybVdvcmtFdmVudCwgZXZlbnRDYWxsYmFjaywgdGhpcywgSU5GSU5JVEUsIFdUX0VYRUNVVEVE
RUZBVUxUKSkgewogICAgICAgICBEV09SRCBlcnJvciA9IDo6R2V0TGFzdEVycm9yKCk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTE1Niw5ICsxOTcsMTIgQEAgdm9p
ZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKQogCiB2b2lkIFdvcmtRdWV1ZTo6
cGxhdGZvcm1JbnZhbGlkYXRlKCkKIHsKLSAgICA6OkNsb3NlSGFuZGxlKG1fcGVyZm9ybVdvcmtF
dmVudCk7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIE11dGV4TG9ja2VyIGxvY2sobV9oYW5k
bGVzTG9jayk7CisgICAgQVNTRVJUKG1faGFuZGxlcy5pc0VtcHR5KCkpOworI2VuZGlmCiAKLSAg
ICAvLyBGSVhNRTogU3RvcCB0aGUgdGhyZWFkIGFuZCBkbyBvdGhlciBjbGVhbnVwLgorICAgIHVu
cmVnaXN0ZXJXYWl0QW5kQ2xvc2VIYW5kbGUobV9wZXJmb3JtV29ya1dhaXRIYW5kbGUsIG1fcGVy
Zm9ybVdvcmtFdmVudCk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093
blB0cjxXb3JrSXRlbT4gaXRlbSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66933</attachid>
            <date>2010-09-08 13:50:32 -0700</date>
            <delta_ts>2010-09-08 13:53:59 -0700</delta_ts>
            <desc>Teach WorkQueue how to stop waiting on objects on Windows</desc>
            <filename>bug-42826-20100908165033.patch</filename>
            <type>text/plain</type>
            <size>11110</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZTQzNjM0NDVjZTkyMzIyOTY1YTJlNGI4Y2ExYTMxMzQzZjRmODY5Zi4uZmRiZDU2YWNkODQ0MjE5
Zjg5NjllNjFiMTBhZjhlMzA4MDMzOGZjOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1OSBAQAogMjAxMC0wOS0wOCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAgICAgICAgVGVhY2ggV29ya1F1ZXVlIGhv
dyB0byBzdG9wIHdhaXRpbmcgb24gb2JqZWN0cyBvbiBXaW5kb3dzCisKKyAgICAgICAgV29ya1F1
ZXVlIG5vdyB1c2VzIGEgc3ViY2xhc3Mgb2YgV29ya0l0ZW1XaW4sIEhhbmRsZVdvcmtJdGVtLCB0
byBob2xkCisgICAgICAgIHRoZSB3YWl0ZWQtdXBvbiBIQU5ETEUgYW5kIGl0cyBjb3JyZXNwb25k
aW5nIHdhaXQgaGFuZGxlLiBXaGVuIGEKKyAgICAgICAgSEFORExFIGlzIHVucmVnaXN0ZXJlZCwg
d2UgdXNlIHRoZSBIYW5kbGVXb3JrSXRlbSB0byBjYW5jZWwgdGhlIHdhaXQKKyAgICAgICAgYW5k
IGRlc3Ryb3kgdGhlIEhBTkRMRS4KKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcv
Yi80MjgyNj4gPHJkYXI6Ly9wcm9ibGVtLzgyMjIyNTM+IENyYXNoIGluCisgICAgICAgIHRocmVh
ZCBwb29sIGJlY2F1c2UgV29ya1F1ZXVlIGtlZXBzIHdhaXRpbmcgb24gY2xvc2VkIEhBTkRMRXMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29u
bmVjdGlvbjo6cGxhdGZvcm1JbnZhbGlkYXRlKTogQ2hhbmdlZCB0byBjYWxsCisgICAgICAgIFdv
cmtRdWV1ZTo6dW5yZWdpc3RlckFuZENsb3NlSGFuZGxlIGluc3RlYWQgb2YgY2xvc2luZyBvdXIg
aGFuZGxlcworICAgICAgICBtYW51YWxseS4KKworICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlv
bjo6cmVhZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjp3cml0
ZUV2ZW50SGFuZGxlcik6CisgICAgICAgIEhhbmRsZSBjYXNlcyB3aGVyZSB0aGUgcGlwZSBoYXMg
YWxyZWFkeSBjbG9zZWQgYnkganVzdCBiYWlsaW5nIG91dC4KKyAgICAgICAgVGhpcyBjYW4gaGFw
cGVuIGlmIGEgV29ya0l0ZW0gdG8gY2FsbCBvbmUgb2YgdGhlc2UgZnVuY3Rpb25zIGhhcworICAg
ICAgICBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkIGJlZm9yZSBwbGF0Zm9ybUludmFsaWRhdGUgaXMg
Y2FsbGVkLgorCisgICAgICAgICogUGxhdGZvcm0vV29ya1F1ZXVlLmg6IEdhdmUgV29ya0l0ZW1X
aW4gYSB2aXJ0dWFsIGRlc3RydWN0b3IsIGFkZGVkCisgICAgICAgIEhhbmRsZVdvcmtJdGVtLCBj
aGFuZ2VkIG1faGFuZGxlcyB0byBob2xkIEhhbmRsZVdvcmtJdGVtcywgYW5kIGFkZGVkCisgICAg
ICAgIGZ1bmN0aW9ucyBmb3IgdW5yZWdpc3RlcmluZyB3YWl0cy4KKworICAgICAgICAqIFBsYXRm
b3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpXb3JrSXRlbVdp
bjo6fldvcmtJdGVtV2luKTogQWRkZWQuIFRoaXMgdmlydHVhbCBkZXN0cnVjdG9yCisgICAgICAg
IGVuc3VyZXMgdGhhdCBIYW5kbGVXb3JrSXRlbSdzIGRlc3RydWN0b3IgZ2V0cyBjYWxsZWQuCisK
KyAgICAgICAgKFdvcmtRdWV1ZTo6SGFuZGxlV29ya0l0ZW06OkhhbmRsZVdvcmtJdGVtKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6SGFuZGxlV29ya0l0ZW06OmNyZWF0ZUJ5QWRvcHRpbmdIYW5kbGUp
OgorICAgICAgICBBZGRlZCBzaW1wbGUgY29uc3RydWN0b3IvY3JlYXRvci4KKworICAgICAgICAo
V29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRlbTo6fkhhbmRsZVdvcmtJdGVtKTogQ2xvc2VzIHRoZSBo
YW5kbGUgd2UKKyAgICAgICAgYWRvcHRlZC4KKyAgICAgICAgKFdvcmtRdWV1ZTo6cmVnaXN0ZXJI
YW5kbGUpOiBDaGFuZ2VkIHRvIGNyZWF0ZSBhIEhhbmRsZVdvcmtJdGVtV2luIGFuZAorICAgICAg
ICB0byBzdG9yZSB0aGUgd2FpdCBoYW5kbGUgaW4gaXQuCisgICAgICAgIChXb3JrUXVldWU6OnVu
cmVnaXN0ZXJBbmRDbG9zZUhhbmRsZSk6IEFkZGVkLiBSZW1vdmVzIHRoZQorICAgICAgICBIYW5k
bGVXb3JrSXRlbSBmb3IgdGhpcyBIQU5ETEUgZnJvbSBtX2hhbmRsZXMgYW5kIHRoZW4gc2NoZWR1
bGVzIGl0cworICAgICAgICB3YWl0IHRvIGJlIHVucmVnaXN0ZXJlZCBhbmQgdGhlIGl0ZW0gdG8g
YmUgZGVzdHJveWVkLgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUludmFsaWRhdGUpOiBB
ZGRlZCBhbiBhc3NlcnRpb24gYW5kIHJlbW92ZWQgYW4KKyAgICAgICAgb2Jzb2xldGUgRklYTUUu
CisgICAgICAgIChXb3JrUXVldWU6OnVucmVnaXN0ZXJXYWl0QW5kRGVzdHJveUl0ZW1Tb29uKTog
QWRkZWQuIENhbGxzCisgICAgICAgIHVucmVnaXN0ZXJXYWl0QW5kRGVzdHJveUl0ZW1DYWxsYmFj
ayBvbiBhIHdvcmtlciB0aHJlYWQsIHBhc3NpbmcgaXQKKyAgICAgICAgb3duZXJzaGlwIG9mIHRo
ZSBIYW5kbGVXb3JrSXRlbS4KKyAgICAgICAgKFdvcmtRdWV1ZTo6dW5yZWdpc3RlcldhaXRBbmRE
ZXN0cm95SXRlbUNhbGxiYWNrKTogQWRkZWQuIEFkb3B0cyB0aGUKKyAgICAgICAgcGFzc2VkLWlu
IEhhbmRsZVdvcmtJdGVtLCB0aGVuIHVucmVnaXN0ZXJzIHRoZSBoYW5kbGUncyB3YWl0LCB0aGVu
CisgICAgICAgIGRlc3Ryb3lzIHRoZSBIYW5kbGVXb3JrSXRlbSB3aGVuIHRoZSBSZWZQdHIgaG9s
ZGluZyBpdCBnb2VzIG91dCBvZgorICAgICAgICBzY29wZS4gRGVzdHJveWluZyB0aGUgSGFuZGxl
V29ya0l0ZW0gY2xvc2VzIHRoZSBoYW5kbGUuCisKKzIwMTAtMDktMDggIEFkYW0gUm9iZW4gIDxh
cm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIEdldCByaWQgb2YgV29ya1F1ZXVlOjptX3BlcmZv
cm1Xb3JrRXZlbnQKIAogICAgICAgICBXZSB3ZXJlIHNpZ25hbGluZyBtX3BlcmZvcm1Xb3JrRXZl
bnQgdG8gc3Bhd24gYSB3b3JrZXIgdGhyZWFkLiBXZSBjYW4KZGlmZiAtLWdpdCBhL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldpbi5jcHAgYi9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCmluZGV4IGYxY2M0NmM0NzlhYTNhOGZlODQ4
MTljMDQzODBmNWQwNTgwNWYwMzkuLjY5NWRhNzhkNWM5MDVkMThkMWQ4ZWMwYWZiODMyMjY0NjY4
NDc4MGUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlv
bldpbi5jcHAKKysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2lu
LmNwcApAQCAtOTgsMTIgKzk4LDEwIEBAIHZvaWQgQ29ubmVjdGlvbjo6cGxhdGZvcm1JbnZhbGlk
YXRlKCkKICAgICBpZiAobV9jb25uZWN0aW9uUGlwZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFVucmVnaXN0ZXIgdGhlIGhhbmRsZXMu
Ci0KLSAgICA6OkNsb3NlSGFuZGxlKG1fcmVhZFN0YXRlLmhFdmVudCk7CisgICAgbV9jb25uZWN0
aW9uUXVldWUudW5yZWdpc3RlckFuZENsb3NlSGFuZGxlKG1fcmVhZFN0YXRlLmhFdmVudCk7CiAg
ICAgbV9yZWFkU3RhdGUuaEV2ZW50ID0gMDsKIAotICAgIDo6Q2xvc2VIYW5kbGUobV93cml0ZVN0
YXRlLmhFdmVudCk7CisgICAgbV9jb25uZWN0aW9uUXVldWUudW5yZWdpc3RlckFuZENsb3NlSGFu
ZGxlKG1fd3JpdGVTdGF0ZS5oRXZlbnQpOwogICAgIG1fd3JpdGVTdGF0ZS5oRXZlbnQgPSAwOwog
CiAgICAgOjpDbG9zZUhhbmRsZShtX2Nvbm5lY3Rpb25QaXBlKTsKQEAgLTExMiw2ICsxMTAsOSBA
QCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAKIHZvaWQgQ29ubmVjdGlv
bjo6cmVhZEV2ZW50SGFuZGxlcigpCiB7CisgICAgaWYgKG1fY29ubmVjdGlvblBpcGUgPT0gSU5W
QUxJRF9IQU5ETEVfVkFMVUUpCisgICAgICAgIHJldHVybjsKKwogICAgIHdoaWxlICh0cnVlKSB7
CiAgICAgICAgIC8vIENoZWNrIGlmIHdlIGdvdCBzb21lIGRhdGEuCiAgICAgICAgIERXT1JEIG51
bWJlck9mQnl0ZXNSZWFkID0gMDsKQEAgLTIzMSw2ICsyMzIsOSBAQCB2b2lkIENvbm5lY3Rpb246
OnJlYWRFdmVudEhhbmRsZXIoKQogCiB2b2lkIENvbm5lY3Rpb246OndyaXRlRXZlbnRIYW5kbGVy
KCkKIHsKKyAgICBpZiAobV9jb25uZWN0aW9uUGlwZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgRFdPUkQgbnVtYmVyT2ZCeXRlc1dyaXR0ZW4gPSAwOwog
ICAgIGlmICghOjpHZXRPdmVybGFwcGVkUmVzdWx0KG1fY29ubmVjdGlvblBpcGUsICZtX3dyaXRl
U3RhdGUsICZudW1iZXJPZkJ5dGVzV3JpdHRlbiwgRkFMU0UpKSB7CiAgICAgICAgIERXT1JEIGVy
cm9yID0gOjpHZXRMYXN0RXJyb3IoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vV29y
a1F1ZXVlLmggYi9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCmluZGV4IDM2NGVlZDcxZTc3
OTY2MWZmY2JiYmViNTNhOWIxNGJiYzk5MGZkM2IuLmZiYWY1YzM1N2JmZWYzZDBkZmEwZWEwZGEx
Nzc5MjYwZjhjNDE2MzQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgK
KysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIobWFjaF9wb3J0X3Qp
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoSEFORExFLCBQ
YXNzT3duUHRyPFdvcmtJdGVtPik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKEhBTkRMRSk7
CisgICAgdm9pZCB1bnJlZ2lzdGVyQW5kQ2xvc2VIYW5kbGUoSEFORExFKTsKICNlbGlmIFBMQVRG
T1JNKFFUKQogICAgIHZvaWQgY29ubmVjdFNpZ25hbChRT2JqZWN0KiwgY29uc3QgY2hhciogc2ln
bmFsLCBQYXNzT3duUHRyPFdvcmtJdGVtPik7CiAgICAgdm9pZCBkaXNjb25uZWN0U2lnbmFsKFFP
YmplY3QqLCBjb25zdCBjaGFyKiBzaWduYWwpOwpAQCAtOTYsMTcgKzk2LDM0IEBAIHByaXZhdGU6
CiAgICAgY2xhc3MgV29ya0l0ZW1XaW4gOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrSXRlbVdpbj4g
ewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya0l0ZW1XaW4+IGNy
ZWF0ZShQYXNzT3duUHRyPFdvcmtJdGVtPiwgV29ya1F1ZXVlKik7CisgICAgICAgIHZpcnR1YWwg
fldvcmtJdGVtV2luKCk7CiAKICAgICAgICAgV29ya0l0ZW0qIGl0ZW0oKSBjb25zdCB7IHJldHVy
biBtX2l0ZW0uZ2V0KCk7IH0KICAgICAgICAgV29ya1F1ZXVlKiBxdWV1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcXVldWU7IH0KIAotICAgIHByaXZhdGU6CisgICAgcHJvdGVjdGVkOgogICAgICAgICBX
b3JrSXRlbVdpbihQYXNzT3duUHRyPFdvcmtJdGVtPiwgV29ya1F1ZXVlKik7CiAKKyAgICBwcml2
YXRlOgogICAgICAgICBPd25QdHI8V29ya0l0ZW0+IG1faXRlbTsKICAgICAgICAgV29ya1F1ZXVl
KiBtX3F1ZXVlOwogICAgIH07CiAKKyAgICBjbGFzcyBIYW5kbGVXb3JrSXRlbSA6IHB1YmxpYyBX
b3JrSXRlbVdpbiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIYW5k
bGVXb3JrSXRlbT4gY3JlYXRlQnlBZG9wdGluZ0hhbmRsZShIQU5ETEUsIFBhc3NPd25QdHI8V29y
a0l0ZW0+LCBXb3JrUXVldWUqKTsKKyAgICAgICAgdmlydHVhbCB+SGFuZGxlV29ya0l0ZW0oKTsK
KworICAgICAgICB2b2lkIHNldFdhaXRIYW5kbGUoSEFORExFIHdhaXRIYW5kbGUpIHsgbV93YWl0
SGFuZGxlID0gd2FpdEhhbmRsZTsgfQorICAgICAgICBIQU5ETEUgd2FpdEhhbmRsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fd2FpdEhhbmRsZTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgSGFuZGxl
V29ya0l0ZW0oSEFORExFLCBQYXNzT3duUHRyPFdvcmtJdGVtPiwgV29ya1F1ZXVlKik7CisKKyAg
ICAgICAgSEFORExFIG1faGFuZGxlOworICAgICAgICBIQU5ETEUgbV93YWl0SGFuZGxlOworICAg
IH07CisKICAgICBzdGF0aWMgdm9pZCBDQUxMQkFDSyBoYW5kbGVDYWxsYmFjayh2b2lkKiBjb250
ZXh0LCBCT09MRUFOIHRpbWVyT3JXYWl0RmlyZWQpOwogICAgIHN0YXRpYyBEV09SRCBXSU5BUEkg
d29ya1RocmVhZENhbGxiYWNrKHZvaWQqIGNvbnRleHQpOwogCkBAIC0xMTQsMTMgKzEzMSwxNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3RlckFzV29ya1RocmVhZCgpOwogICAgIHZvaWQg
cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCk7CiAKKyAgICBzdGF0aWMgdm9pZCB1
bnJlZ2lzdGVyV2FpdEFuZERlc3Ryb3lJdGVtKFBhc3NSZWZQdHI8SGFuZGxlV29ya0l0ZW0+KTsK
KyAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIHVucmVnaXN0ZXJXYWl0QW5kRGVzdHJveUl0ZW1DYWxs
YmFjayh2b2lkKiBjb250ZXh0KTsKKwogICAgIHZvbGF0aWxlIExPTkcgbV9pc1dvcmtUaHJlYWRS
ZWdpc3RlcmVkOwogCiAgICAgTXV0ZXggbV93b3JrSXRlbVF1ZXVlTG9jazsKICAgICBWZWN0b3I8
UmVmUHRyPFdvcmtJdGVtV2luPiA+IG1fd29ya0l0ZW1RdWV1ZTsKIAogICAgIE11dGV4IG1faGFu
ZGxlc0xvY2s7Ci0gICAgSGFzaE1hcDxIQU5ETEUsIFJlZlB0cjxXb3JrSXRlbVdpbj4gPiBtX2hh
bmRsZXM7CisgICAgSGFzaE1hcDxIQU5ETEUsIFJlZlB0cjxIYW5kbGVXb3JrSXRlbT4gPiBtX2hh
bmRsZXM7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBjbGFzcyBXb3JrSXRlbVF0OwogICAgIEhh
c2hNYXA8UU9iamVjdCosIFdvcmtJdGVtUXQqPiBtX3NpZ25hbExpc3RlbmVyczsKZGlmZiAtLWdp
dCBhL1dlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9XZWJLaXQyL1BsYXRm
b3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IDlmYmU2NDE5ZjViZjA0MmQ4ZWM5MzAyZjQx
YzBjNWJiMDM2M2FjYWMuLjk4ZTI4MDI3NWE1NWNlNjM2ZDllNDMxYjU0ODQxMjczNTE3NjgxZWQg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHAKKysrIGIv
V2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAtMzgsNiArMzgsMjggQEAg
UGFzc1JlZlB0cjxXb3JrUXVldWU6OldvcmtJdGVtV2luPiBXb3JrUXVldWU6OldvcmtJdGVtV2lu
OjpjcmVhdGUoUGFzc093blB0cjxXb3IKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdvcmtJdGVt
V2luKGl0ZW0sIHF1ZXVlKSk7CiB9CiAKK1dvcmtRdWV1ZTo6V29ya0l0ZW1XaW46On5Xb3JrSXRl
bVdpbigpCit7Cit9CisKK2lubGluZSBXb3JrUXVldWU6OkhhbmRsZVdvcmtJdGVtOjpIYW5kbGVX
b3JrSXRlbShIQU5ETEUgaGFuZGxlLCBQYXNzT3duUHRyPFdvcmtJdGVtPiBpdGVtLCBXb3JrUXVl
dWUqIHF1ZXVlKQorICAgIDogV29ya0l0ZW1XaW4oaXRlbSwgcXVldWUpCisgICAgLCBtX2hhbmRs
ZShoYW5kbGUpCisgICAgLCBtX3dhaXRIYW5kbGUoMCkKK3sKKyAgICBBU1NFUlRfQVJHKGhhbmRs
ZSwgaGFuZGxlKTsKK30KKworUGFzc1JlZlB0cjxXb3JrUXVldWU6OkhhbmRsZVdvcmtJdGVtPiBX
b3JrUXVldWU6OkhhbmRsZVdvcmtJdGVtOjpjcmVhdGVCeUFkb3B0aW5nSGFuZGxlKEhBTkRMRSBo
YW5kbGUsIFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0sIFdvcmtRdWV1ZSogcXVldWUpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIYW5kbGVXb3JrSXRlbShoYW5kbGUsIGl0ZW0sIHF1ZXVl
KSk7Cit9CisKK1dvcmtRdWV1ZTo6SGFuZGxlV29ya0l0ZW06On5IYW5kbGVXb3JrSXRlbSgpCit7
CisgICAgOjpDbG9zZUhhbmRsZShtX2hhbmRsZSk7Cit9CisKIHZvaWQgV29ya1F1ZXVlOjpoYW5k
bGVDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBCT09MRUFOIHRpbWVyT3JXYWl0RmlyZWQpCiB7CiAg
ICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKQEAgLTY1LDIwICs4NywzMiBAQCB2b2lk
IFdvcmtRdWV1ZTo6aGFuZGxlQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9y
V2FpdEZpcmVkKQogCiB2b2lkIFdvcmtRdWV1ZTo6cmVnaXN0ZXJIYW5kbGUoSEFORExFIGhhbmRs
ZSwgUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkKIHsKLSAgICBSZWZQdHI8V29ya0l0ZW1XaW4+
IGl0ZW1XaW4gPSBXb3JrSXRlbVdpbjo6Y3JlYXRlKGl0ZW0sIHRoaXMpOworICAgIFJlZlB0cjxI
YW5kbGVXb3JrSXRlbT4gaGFuZGxlSXRlbSA9IEhhbmRsZVdvcmtJdGVtOjpjcmVhdGVCeUFkb3B0
aW5nSGFuZGxlKGhhbmRsZSwgaXRlbSwgdGhpcyk7CiAKLSAgICAvLyBBZGQgdGhlIGl0ZW0uCiAg
ICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9oYW5kbGVzTG9jayk7Ci0gICAgICAg
IG1faGFuZGxlcy5zZXQoaGFuZGxlLCBpdGVtV2luKTsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhtX2hhbmRsZXNMb2NrKTsKKyAgICAgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFtX2hhbmRsZXMu
Y29udGFpbnMoaGFuZGxlKSk7CisgICAgICAgIG1faGFuZGxlcy5zZXQoaGFuZGxlLCBoYW5kbGVJ
dGVtKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBob2xkIG9udG8gd2FpdEhh
bmRsZSBzbyB0aGF0IHdlIGNhbiB1bnJlZ2lzdGVyIHRoZSB3YWl0IGxhdGVyLgogICAgIEhBTkRM
RSB3YWl0SGFuZGxlOwotICAgIGlmICghOjpSZWdpc3RlcldhaXRGb3JTaW5nbGVPYmplY3QoJndh
aXRIYW5kbGUsIGhhbmRsZSwgaGFuZGxlQ2FsbGJhY2ssIGl0ZW1XaW4uZ2V0KCksIElORklOSVRF
LCBXVF9FWEVDVVRFREVGQVVMVCkpIHsKKyAgICBpZiAoITo6UmVnaXN0ZXJXYWl0Rm9yU2luZ2xl
T2JqZWN0KCZ3YWl0SGFuZGxlLCBoYW5kbGUsIGhhbmRsZUNhbGxiYWNrLCBoYW5kbGVJdGVtLmdl
dCgpLCBJTkZJTklURSwgV1RfRVhFQ1VURURFRkFVTFQpKSB7CiAgICAgICAgIERXT1JEIGVycm9y
ID0gOjpHZXRMYXN0RXJyb3IoKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQorICAgIGhhbmRsZUl0ZW0tPnNldFdhaXRIYW5kbGUod2FpdEhhbmRsZSk7Cit9CisKK3ZvaWQg
V29ya1F1ZXVlOjp1bnJlZ2lzdGVyQW5kQ2xvc2VIYW5kbGUoSEFORExFIGhhbmRsZSkKK3sKKyAg
ICBSZWZQdHI8SGFuZGxlV29ya0l0ZW0+IGl0ZW07CisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9oYW5kbGVzTG9jayk7CisgICAgICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBtX2hh
bmRsZXMuY29udGFpbnMoaGFuZGxlKSk7CisgICAgICAgIGl0ZW0gPSBtX2hhbmRsZXMudGFrZSho
YW5kbGUpOworICAgIH0KKworICAgIHVucmVnaXN0ZXJXYWl0QW5kRGVzdHJveUl0ZW1Tb29uKGl0
ZW0ucmVsZWFzZSgpKTsKIH0KIAogRFdPUkQgV29ya1F1ZXVlOjp3b3JrVGhyZWFkQ2FsbGJhY2so
dm9pZCogY29udGV4dCkKQEAgLTE0Niw3ICsxODAsMTAgQEAgdm9pZCBXb3JrUXVldWU6OnVucmVn
aXN0ZXJBc1dvcmtUaHJlYWQoKQogCiB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRl
KCkKIHsKLSAgICAvLyBGSVhNRTogU3RvcCB0aGUgdGhyZWFkIGFuZCBkbyBvdGhlciBjbGVhbnVw
LgorI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBNdXRleExvY2tlciBsb2NrKG1faGFuZGxlc0xv
Y2spOworICAgIEFTU0VSVChtX2hhbmRsZXMuaXNFbXB0eSgpKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0pCkBAIC0x
NjQsMyArMjAxLDI4IEBAIHZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjxX
b3JrSXRlbT4gaXRlbSkKICAgICBpZiAoIW1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCkKICAgICAg
ICAgOjpRdWV1ZVVzZXJXb3JrSXRlbSh3b3JrVGhyZWFkQ2FsbGJhY2ssIHRoaXMsIFdUX0VYRUNV
VEVERUZBVUxUKTsKIH0KKwordm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJXYWl0QW5kRGVzdHJv
eUl0ZW1Tb29uKFBhc3NSZWZQdHI8SGFuZGxlV29ya0l0ZW0+IGl0ZW0pCit7CisgICAgLy8gV2Un
cmUgZ29pbmcgdG8gbWFrZSBhIGJsb2NraW5nIGNhbGwgdG8gOjpVbnJlZ2lzdGVyV2FpdEV4IGJl
Zm9yZSBjbG9zaW5nIHRoZSBoYW5kbGUuIChUaGUKKyAgICAvLyBibG9ja2luZyB2ZXJzaW9uIG9m
IDo6VW5yZWdpc3RlcldhaXRFeCBpcyBtdWNoIHNpbXBsZXIgdGhhbiB0aGUgbm9uLWJsb2NraW5n
IHZlcnNpb24uKSBJZiB3ZQorICAgIC8vIGRvIHRoaXMgb24gdGhlIGN1cnJlbnQgdGhyZWFkLCB3
ZSdsbCBkZWFkbG9jayBpZiB3ZSdyZSBjdXJyZW50bHkgaW4gYSBjYWxsYmFjayBmdW5jdGlvbiBm
b3IKKyAgICAvLyB0aGUgd2FpdCB3ZSdyZSB1bnJlZ2lzdGVyaW5nLiBTbyBpbnN0ZWFkIHdlIGRv
IGl0IGFzeW5jaHJvbm91c2x5IG9uIHNvbWUgb3RoZXIgd29ya2VyIHRocmVhZC4KKworICAgIDo6
UXVldWVVc2VyV29ya0l0ZW0odW5yZWdpc3RlcldhaXRBbmREZXN0cm95SXRlbUNhbGxiYWNrLCBp
dGVtLmxlYWtSZWYoKSwgV1RfRVhFQ1VURURFRkFVTFQpOworfQorCitEV09SRCBXSU5BUEkgV29y
a1F1ZXVlOjp1bnJlZ2lzdGVyV2FpdEFuZERlc3Ryb3lJdGVtQ2FsbGJhY2sodm9pZCogY29udGV4
dCkKK3sKKyAgICBBU1NFUlRfQVJHKGNvbnRleHQsIGNvbnRleHQpOworICAgIFJlZlB0cjxIYW5k
bGVXb3JrSXRlbT4gaXRlbSA9IGFkb3B0UmVmKHN0YXRpY19jYXN0PEhhbmRsZVdvcmtJdGVtKj4o
Y29udGV4dCkpOworCisgICAgLy8gTm93IHRoYXQgd2Uga25vdyB3ZSdyZSBub3QgaW4gYSBjYWxs
YmFjayBmdW5jdGlvbiBmb3IgdGhlIHdhaXQgd2UncmUgdW5yZWdpc3RlcmluZywgd2UgY2FuCisg
ICAgLy8gbWFrZSBhIGJsb2NraW5nIGNhbGwgdG8gOjpVbnJlZ2lzdGVyV2FpdEV4LgorICAgIGlm
ICghOjpVbnJlZ2lzdGVyV2FpdEV4KGl0ZW0tPndhaXRIYW5kbGUoKSwgSU5WQUxJRF9IQU5ETEVf
VkFMVUUpKSB7CisgICAgICAgIERXT1JEIGVycm9yID0gOjpHZXRMYXN0RXJyb3IoKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9Cg==
</data>
<flag name="review"
          id="56084"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>