<?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>46752</bug_id>
          
          <creation_ts>2010-09-28 13:50:58 -0700</creation_ts>
          <short_desc>Differentiate waitForSyncReply from waitForReply</short_desc>
          <delta_ts>2010-09-29 04:20:47 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286507</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-28 13:50:58 -0700</bug_when>
    <thetext>Differentiate waitForReply from waitForSyncreply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286509</commentid>
    <comment_count>1</comment_count>
      <attachid>69097</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-28 13:55:26 -0700</bug_when>
    <thetext>Created attachment 69097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286512</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-28 14:00:42 -0700</bug_when>
    <thetext>Committed r68559: &lt;http://trac.webkit.org/changeset/68559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286793</commentid>
    <comment_count>3</comment_count>
      <attachid>69097</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-29 04:20:39 -0700</bug_when>
    <thetext>Comment on attachment 69097
Patch

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

&gt; WebKit2/Platform/CoreIPC/Connection.cpp:208
&gt; +    while (!timedOut) {
&gt; +        MutexLocker locker(m_waitForSyncReplyMutex);
&gt; +
&gt; +        // First, check if there is a sync reply at the top of the stack.
&gt; +        ASSERT(!m_pendingSyncReplies.isEmpty());
&gt; +            
&gt; +        PendingSyncReply&amp; pendingSyncReply = m_pendingSyncReplies.last();
&gt; +        ASSERT(pendingSyncReply.syncRequestID == syncRequestID);
&gt; +            
&gt; +        // We found the sync reply, return it.
&gt; +        if (pendingSyncReply.didReceiveReply)
&gt; +            return pendingSyncReply.releaseReplyDecoder();
&gt; +
&gt; +        // We didn&apos;t find a sync reply yet, keep waiting.
&gt; +        timedOut = !m_waitForSyncReplyCondition.timedWait(m_waitForSyncReplyMutex, absoluteTime);
&gt; +    }

This code is a little strange with respect to the mutex and condition variable. When you enter timedWait, m_waitForSyncReplyMutex is unlocked. When you exit timedWait, m_waitForSyncReplyMutex is locked again. But then you unlock/lock it right away when you start the loop over.

I think a better pattern would be to move the locker local variable outside of the while loop. That way you&apos;ll lock the mutex before entering the loop, unlock it each time you wait, relock it each time you finish waiting, and unlock it when the function exits.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69097</attachid>
            <date>2010-09-28 13:55:26 -0700</date>
            <delta_ts>2010-09-29 04:20:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46752-20100928135525.patch</filename>
            <type>text/plain</type>
            <size>7386</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZjMwZDQ5ZDI1MWU2NmY0OTFlYTM3NmVlZDI3Y2I0NDU5NjAzZTQ1MC4uYWM5YmQzZDEyMDNiNmUx
YWUxMWYzYThlNjFiNTYyMzQ0YjQyZGU3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOS0yOCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpZmZlcmVudGlhdGUgd2FpdEZvclN5bmNSZXBs
eSBmcm9tIHdhaXRGb3JSZXBseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDY3NTIKKworICAgICAgICBTaW5jZSB3YWl0Rm9yU3luY1JlcGx5IGlzIGdv
aW5nIHRvIG5lZWQgdG8gZGlzcGF0Y2ggaW5jb21pbmcgc3luYyBtZXNzYWdlcyB3aGlsZQorICAg
ICAgICB3YWl0aW5nIGZvciB0aGUgY29ycmVjdCByZXBseSwgd2UgbmVlZCB0byBhZGQgYSBuZXcg
d2FpdEZvclN5bmNSZXBseSBmdW5jdGlvbiB0aGF0CisgICAgICAgIGNhbiBkbyB0aGlzLgorCisg
ICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKENvcmVJ
UEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSk6CisgICAgICAgIFB1c2ggdGhlIHBlbmRp
bmcgc3luYyByZXBseSBpbmZvcm1hdGlvbiBvbiB0aGUgbV9wZW5kaW5nU3luY1JlcGxpZXMgc3Rh
Y2ssCisgICAgICAgIHNlbmQgdGhlIG1lc3NhZ2UsIHdhaXQgZm9yIGEgcmVwbHkgYW5kIHBvcCB0
aGUgaW5mb3JtYXRpb24gb2ZmIHRoZSBzdGFjay4KKworICAgICAgICAoQ29yZUlQQzo6Q29ubmVj
dGlvbjo6d2FpdEZvclN5bmNSZXBseSk6CisgICAgICAgIEJsb2NrIHdoaWxlIHdhaXRpbmcgZm9y
IGEgcmVwbHkgdG8gdGhlIHN5bmMgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBJRC4KKyAgICAgICAg
CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKToK
KyAgICAgICAgSWYgdGhlIGluY29taW5nIG1lc3NhZ2UgaXMgYSBzeW5jIHJlcGx5LCBzZXQgdGhl
IGRpZFJlY2VpdmVSZXBseSBmbGFnIGFuZCB0aGUgcmVwbHlEZWNvZGVyCisgICAgICAgIG1lbWJl
cnMgaW4gdGhlIHBlbmRpbmcgc3luYyByZXBseSBhbmQgc2lnbmFsIHRoZSBjbGllbnQgdGhyZWFk
IHRvIHdha2V1cC4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oOgor
ICAgICAgICBBZGQgYSBzdGFjayBvZiBQZW5kaW5nU3luY1JlcGx5IHN0cnVjdHMuCisKIDIwMTAt
MDktMjggIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlbGwgdGhl
IFVJIGNsaWVudCB3aGVuIGEga2V5IGV2ZW50IGlzIG5vdCBoYW5kbGVkCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggYTIzNDZjMmQ2MjUwYjg3MDM0MWFjNjM1MDMx
NzUyZWRiOTYwZGQ5NC4uZGVmN2M0MWM5ZDFkNWQwZDg1YjIwYzVhY2E0MWVhYTRmNTJjMTQyNyAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMTU3LDE3ICsxNTcs
NzggQEAgUGFzc093blB0cjxBcmd1bWVudERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNz
YWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIHVpbnQKIAogUGFzc093blB0cjxBcmd1bWVudERlY29k
ZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCB1aW50
NjRfdCBzeW5jUmVxdWVzdElELCBQYXNzT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gZW5jb2Rlciwg
ZG91YmxlIHRpbWVvdXQpCiB7CisgICAgLy8gV2Ugb25seSBhbGxvdyBzZW5kaW5nIHN5bmMgbWVz
c2FnZXMgZnJvbSB0aGUgY2xpZW50IHJ1biBsb29wLgorICAgIEFTU0VSVChSdW5Mb29wOjpjdXJy
ZW50KCkgPT0gbV9jbGllbnRSdW5Mb29wKTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICAKKyAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5m
b3JtYXRpb24gb24gb3VyIHN0YWNrLgorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fd2FpdEZvclN5bmNSZXBseU11dGV4KTsKKyAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMu
YXBwZW5kKFBlbmRpbmdTeW5jUmVwbHkoc3luY1JlcXVlc3RJRCkpOworICAgIH0KKyAgICAKICAg
ICAvLyBGaXJzdCBzZW5kIHRoZSBtZXNzYWdlLgotICAgIGlmICghc2VuZE1lc3NhZ2UobWVzc2Fn
ZUlELCBlbmNvZGVyKSkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVy
PigpOworICAgIHNlbmRNZXNzYWdlKG1lc3NhZ2VJRCwgZW5jb2Rlcik7CisgICAgCisgICAgLy8g
VGhlbiB3YWl0IGZvciBhIHJlcGx5LgorICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IHJlcGx5
ID0gd2FpdEZvclN5bmNSZXBseShzeW5jUmVxdWVzdElELCB0aW1lb3V0KTsKIAotICAgIC8vIE5v
dyB3YWl0IGZvciBhIHJlcGx5IGFuZCByZXR1cm4gaXQuCi0gICAgcmV0dXJuIHdhaXRGb3JNZXNz
YWdlKE1lc3NhZ2VJRChDb3JlSVBDTWVzc2FnZTo6U3luY01lc3NhZ2VSZXBseSksIHN5bmNSZXF1
ZXN0SUQsIHRpbWVvdXQpOworICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJl
cGx5IGluZm9ybWF0aW9uLgorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2Fp
dEZvclN5bmNSZXBseU11dGV4KTsKKyAgICAgICAgQVNTRVJUKG1fcGVuZGluZ1N5bmNSZXBsaWVz
Lmxhc3QoKS5zeW5jUmVxdWVzdElEID09IHN5bmNSZXF1ZXN0SUQpOworICAgICAgICBtX3BlbmRp
bmdTeW5jUmVwbGllcy5yZW1vdmVMYXN0KCk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXBs
eS5yZWxlYXNlKCk7Cit9CisKK1Bhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPiBDb25uZWN0aW9u
Ojp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIGRvdWJsZSB0aW1lb3V0
KQoreworICAgIGRvdWJsZSBhYnNvbHV0ZVRpbWUgPSBjdXJyZW50VGltZSgpICsgdGltZW91dDsK
KworICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKKyAgICB3aGlsZSAoIXRpbWVkT3V0KSB7Cisg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JTeW5jUmVwbHlNdXRleCk7CisKKyAg
ICAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHRoZXJlIGlzIGEgc3luYyByZXBseSBhdCB0aGUgdG9w
IG9mIHRoZSBzdGFjay4KKyAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdTeW5jUmVwbGllcy5pc0Vt
cHR5KCkpOworICAgICAgICAgICAgCisgICAgICAgIFBlbmRpbmdTeW5jUmVwbHkmIHBlbmRpbmdT
eW5jUmVwbHkgPSBtX3BlbmRpbmdTeW5jUmVwbGllcy5sYXN0KCk7CisgICAgICAgIEFTU0VSVChw
ZW5kaW5nU3luY1JlcGx5LnN5bmNSZXF1ZXN0SUQgPT0gc3luY1JlcXVlc3RJRCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgLy8gV2UgZm91bmQgdGhlIHN5bmMgcmVwbHksIHJldHVybiBpdC4KKyAg
ICAgICAgaWYgKHBlbmRpbmdTeW5jUmVwbHkuZGlkUmVjZWl2ZVJlcGx5KQorICAgICAgICAgICAg
cmV0dXJuIHBlbmRpbmdTeW5jUmVwbHkucmVsZWFzZVJlcGx5RGVjb2RlcigpOworCisgICAgICAg
IC8vIFdlIGRpZG4ndCBmaW5kIGEgc3luYyByZXBseSB5ZXQsIGtlZXAgd2FpdGluZy4KKyAgICAg
ICAgdGltZWRPdXQgPSAhbV93YWl0Rm9yU3luY1JlcGx5Q29uZGl0aW9uLnRpbWVkV2FpdChtX3dh
aXRGb3JTeW5jUmVwbHlNdXRleCwgYWJzb2x1dGVUaW1lKTsKKyAgICB9CisKKyAgICAvLyBXZSB0
aW1lZCBvdXQuCisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPEFyZ3VtZW50RGVj
b2Rlcj4gYXJndW1lbnRzKQogewotICAgIC8vIEZpcnN0LCBjaGVjayBpZiB3ZSdyZSB3YWl0aW5n
IGZvciB0aGlzIG1lc3NhZ2UuCisgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIHN5bmMgcmVwbHku
CisgICAgaWYgKG1lc3NhZ2VJRCA9PSBNZXNzYWdlSUQoQ29yZUlQQ01lc3NhZ2U6OlN5bmNNZXNz
YWdlUmVwbHkpKSB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRGb3JTeW5jUmVw
bHlNdXRleCk7CisgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nU3luY1JlcGxpZXMuaXNFbXB0eSgp
KTsKKworICAgICAgICBQZW5kaW5nU3luY1JlcGx5JiBwZW5kaW5nU3luY1JlcGx5ID0gbV9wZW5k
aW5nU3luY1JlcGxpZXMubGFzdCgpOworICAgICAgICBBU1NFUlQocGVuZGluZ1N5bmNSZXBseS5z
eW5jUmVxdWVzdElEID09IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKworICAgICAgICBw
ZW5kaW5nU3luY1JlcGx5LnJlcGx5RGVjb2RlciA9IGFyZ3VtZW50cy5sZWFrUHRyKCk7CisgICAg
ICAgIHBlbmRpbmdTeW5jUmVwbHkuZGlkUmVjZWl2ZVJlcGx5ID0gdHJ1ZTsKKworICAgICAgICBt
X3dhaXRGb3JTeW5jUmVwbHlDb25kaXRpb24uc2lnbmFsKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgLy8gQ2hlY2sgaWYgd2UncmUgd2FpdGluZyBmb3IgdGhpcyBtZXNzYWdl
LgogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2FpdEZvck1lc3NhZ2VNdXRl
eCk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5l
Y3Rpb24uaCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggOWIy
NTE5YmY4NWUwYzI1NTJlY2EyODExMGQwZTdiZjE0MmNjODNjNC4uYTZiMjE2MTkzZDUxY2ZlNWE2
MjE1N2QxMjkzNjUzOWZkNGU0ZDczOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5oCkBAIC0xNTEsOSArMTUxLDExIEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAgICAKLSAgICBQYXNzT3duUHRyPEFyZ3Vt
ZW50RGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwgdWludDY0X3Qgc3luY1JlcXVl
c3RJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+LCBkb3VibGUgdGltZW91dCk7CiAgICAg
UGFzc093blB0cjxBcmd1bWVudERlY29kZXI+IHdhaXRGb3JNZXNzYWdlKE1lc3NhZ2VJRCwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCwgZG91YmxlIHRpbWVvdXQpOwogICAgIAorICAgIFBhc3NPd25Q
dHI8QXJndW1lbnREZWNvZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBz
eW5jUmVxdWVzdElELCBQYXNzT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4sIGRvdWJsZSB0aW1lb3V0
KTsKKyAgICBQYXNzT3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4gd2FpdEZvclN5bmNSZXBseSh1aW50
NjRfdCBzeW5jUmVxdWVzdElELCBkb3VibGUgdGltZW91dCk7CisKICAgICAvLyBDYWxsZWQgb24g
dGhlIGNvbm5lY3Rpb24gd29yayBxdWV1ZS4KICAgICB2b2lkIHByb2Nlc3NJbmNvbWluZ01lc3Nh
Z2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4pOwogICAgIGJvb2wgY2Fu
U2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdDsKQEAgLTE4Nyw3ICsxODksNDkgQEAgcHJpdmF0
ZToKICAgICBUaHJlYWRDb25kaXRpb24gbV93YWl0Rm9yTWVzc2FnZUNvbmRpdGlvbjsKICAgICBN
dXRleCBtX3dhaXRGb3JNZXNzYWdlTXV0ZXg7CiAgICAgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWdu
ZWQsIHVpbnQ2NF90PiwgQXJndW1lbnREZWNvZGVyKj4gbV93YWl0Rm9yTWVzc2FnZU1hcDsKKwor
ICAgIC8vIFJlcHJlc2VudHMgYSBzeW5jIHJlcXVlc3QgZm9yIHdoaWNoIHdlJ3JlIHdhaXRpbmcg
b24gYSByZXBseS4KKyAgICBzdHJ1Y3QgUGVuZGluZ1N5bmNSZXBseSB7CisgICAgICAgIC8vIFRo
ZSByZXF1ZXN0IElELgorICAgICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOworCisgICAgICAg
IC8vIFRoZSByZXBseSBkZWNvZGVyLCB3aWxsIGJlIG51bGwgaWYgdGhlcmUgd2FzIGFuIGVycm9y
IHByb2Nlc3NpbmcgdGhlIHN5bmMKKyAgICAgICAgLy8gbWVzc2FnZSBvbiB0aGUgb3RoZXIgc2lk
ZS4KKyAgICAgICAgQXJndW1lbnREZWNvZGVyKiByZXBseURlY29kZXI7CisKKyAgICAgICAgLy8g
V2lsbCBiZSBzZXQgdG8gdHJ1ZSBvbmNlIGEgcmVwbHkgaGFzIGJlZW4gcmVjZWl2ZWQgb3IgYW4g
ZXJyb3Igb2NjdXJyZWQuCisgICAgICAgIGJvb2wgZGlkUmVjZWl2ZVJlcGx5OwogICAgIAorICAg
ICAgICBQZW5kaW5nU3luY1JlcGx5KCkKKyAgICAgICAgICAgIDogc3luY1JlcXVlc3RJRCgwKQor
ICAgICAgICAgICAgLCByZXBseURlY29kZXIoMCkKKyAgICAgICAgICAgICwgZGlkUmVjZWl2ZVJl
cGx5KGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBQZW5k
aW5nU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQpCisgICAgICAgICAgICA6IHN5bmNS
ZXF1ZXN0SUQoc3luY1JlcXVlc3RJRCkKKyAgICAgICAgICAgICwgcmVwbHlEZWNvZGVyKDApCisg
ICAgICAgICAgICAsIGRpZFJlY2VpdmVSZXBseSgwKQorICAgICAgICB7CisgICAgICAgIH0KKwor
ICAgICAgICBQYXNzT3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4gcmVsZWFzZVJlcGx5RGVjb2Rlcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IHJlcGx5ID0g
YWRvcHRQdHIocmVwbHlEZWNvZGVyKTsKKyAgICAgICAgICAgIHJlcGx5RGVjb2RlciA9IDA7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiByZXBseS5yZWxlYXNlKCk7CisgICAgICAg
IH0KKyAgICB9OworCisKKyAgICBNdXRleCBtX3dhaXRGb3JTeW5jUmVwbHlNdXRleDsKKyAgICBU
aHJlYWRDb25kaXRpb24gbV93YWl0Rm9yU3luY1JlcGx5Q29uZGl0aW9uOworCisgICAgLy8gVGhp
cyBpcyBwcm90ZWN0ZWQgYnkgdGhlIG1fd2FpdEZvclN5bmNSZXBseSBtdXRleC4gICAgCisgICAg
VmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVuZGluZ1N5bmNSZXBsaWVzOworCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiBxdWV1ZS4KICAgICB2
b2lkIHJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIoKTsK
</data>
<flag name="review"
          id="58728"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>