<?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>23926</bug_id>
          
          <creation_ts>2009-02-12 10:03:50 -0800</creation_ts>
          <short_desc>Race condition in callOnMainThreadAndWait</short_desc>
          <delta_ts>2009-02-13 01:29:43 -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>Web Template Framework</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>ap</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109492</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-12 10:03:50 -0800</bug_when>
    <thetext>In callOnMainThreadAndWait, if MainThreadFunction finishes before the wait is entered, then the sync() call has no effect. (Thanks to Alexey for pointing out the same problem elsewhere.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109497</commentid>
    <comment_count>1</comment_count>
      <attachid>27606</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-12 10:24:55 -0800</bug_when>
    <thetext>Created attachment 27606
Patch for bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109505</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-02-12 10:40:26 -0800</bug_when>
    <thetext>It would be nice to change callOnMainThread function to match the same style too (remove local scope for the mutex and needToSchedule variable).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109541</commentid>
    <comment_count>3</comment_count>
      <attachid>27606</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-12 12:51:59 -0800</bug_when>
    <thetext>Comment on attachment 27606
Patch for bug.

Retracting while I consider dimich&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109557</commentid>
    <comment_count>4</comment_count>
      <attachid>27623</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-12 14:18:51 -0800</bug_when>
    <thetext>Created attachment 27623
Patch to remove unused function.

callOnMainThreadAndWait isn&apos;t used and it has a race in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109564</commentid>
    <comment_count>5</comment_count>
      <attachid>27623</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-12 14:42:23 -0800</bug_when>
    <thetext>Comment on attachment 27623
Patch to remove unused function.

r=me

Seems to me we can add a version without the race if we find we need it for something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109645</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-13 01:29:43 -0800</bug_when>
    <thetext>Committed revision 40969.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27606</attachid>
            <date>2009-02-12 10:24:55 -0800</date>
            <delta_ts>2009-02-12 14:18:51 -0800</delta_ts>
            <desc>Patch for bug.</desc>
            <filename>bug23926.txt</filename>
            <type>text/plain</type>
            <size>1888</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3OTEwZDE3Li45YWM2NmE3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMDktMDItMTIgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzkyNjogUmFj
ZSBjb25kaXRpb24gaW4gY2FsbE9uTWFpblRocmVhZEFuZFdhaXQKKyAgICAgICAgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkyNj4KKworICAgICAgICAqIHd0Zi9N
YWluVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQpOgor
ICAgICAgICBVc2UgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCBhcyB0aGUgdGhyZWFkIGNv
bmRpdGlvbiBtdXRleC4gVGhpcyBhdm9pZHMgYSByYWNlCisgICAgICAgIGNvbmRpdGlvbiBpbiB3
aGljaCB0aGUgTWFpblRocmVhZEZ1bmN0aW9uIGNvdWxkIGZpbmlzaCBhbmQgdGhyZWFkQ29uZGl0
aW9uLnNpZ25hbCgpCisgICAgICAgIGdldCBjYWxsZWQgYmVmb3JlIHRocmVhZENvbmRpdGlvbi53
YWl0KCkgaGFwcGVuZWQgaW4gY2FsbE9uTWFpblRocmVhZEFuZFdhaXQuCisKIDIwMDktMDItMTEg
IERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9N
YWluVGhyZWFkLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCA0
NmYyZTBlLi42MzRiYzNkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVh
ZC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCkBAIC0xMzEsMTgg
KzEzMSwxMyBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KE1haW5UaHJlYWRGdW5jdGlv
biogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCiAgICAgfQogCiAgICAgVGhyZWFkQ29uZGl0aW9u
IHN5bmNGbGFnOwotICAgIE11dGV4IGNvbmRpdGlvbk11dGV4OwotICAgIGJvb2wgbmVlZFRvU2No
ZWR1bGUgPSBmYWxzZTsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYWluVGhy
ZWFkRnVuY3Rpb25RdWV1ZU11dGV4KCkpOwotICAgICAgICBuZWVkVG9TY2hlZHVsZSA9IGZ1bmN0
aW9uUXVldWUoKS5zaXplKCkgPT0gMDsKLSAgICAgICAgZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChG
dW5jdGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0LCAmc3luY0ZsYWcpKTsKLSAgICAg
ICAgY29uZGl0aW9uTXV0ZXgubG9jaygpOwotICAgIH0KKyAgICBNdXRleCYgZnVuY3Rpb25RdWV1
ZU11dGV4ID0gbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgpOworICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihmdW5jdGlvblF1ZXVlTXV0ZXgpOworICAgIGZ1bmN0aW9uUXVldWUoKS5hcHBlbmQo
RnVuY3Rpb25XaXRoQ29udGV4dChmdW5jdGlvbiwgY29udGV4dCwgJnN5bmNGbGFnKSk7CiAKLSAg
ICBpZiAobmVlZFRvU2NoZWR1bGUpCisgICAgaWYgKCFmdW5jdGlvblF1ZXVlKCkuc2l6ZSgpKQog
ICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7Ci0gICAgc3lu
Y0ZsYWcud2FpdChjb25kaXRpb25NdXRleCk7CisgICAgc3luY0ZsYWcud2FpdChmdW5jdGlvblF1
ZXVlTXV0ZXgpOwogfQogCiB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBw
YXVzZWQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27623</attachid>
            <date>2009-02-12 14:18:51 -0800</date>
            <delta_ts>2009-02-12 14:42:23 -0800</delta_ts>
            <desc>Patch to remove unused function.</desc>
            <filename>bug23926.txt</filename>
            <type>text/plain</type>
            <size>3062</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3OTEwZDE3Li44OTk0N2ExIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDItMTIgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzkyNjogUmFj
ZSBjb25kaXRpb24gaW4gY2FsbE9uTWFpblRocmVhZEFuZFdhaXQKKyAgICAgICAgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkyNj4KKworICAgICAgICBSZW1vdmVk
IGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0IHNpbmNlIGl0IGlzbid0IHVzZWQuCisgICAgICAgICog
d3RmL01haW5UaHJlYWQuY3BwOgorCiAyMDA5LTAyLTExICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3Yu
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKaW5kZXggNDZmMmUwZS4uM2MxOWI3YSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMzksMTIgKzM5LDEwIEBAIG5hbWVzcGFjZSBXVEYg
ewogc3RydWN0IEZ1bmN0aW9uV2l0aENvbnRleHQgewogICAgIE1haW5UaHJlYWRGdW5jdGlvbiog
ZnVuY3Rpb247CiAgICAgdm9pZCogY29udGV4dDsKLSAgICBUaHJlYWRDb25kaXRpb24qIHN5bmNG
bGFnOwogCi0gICAgRnVuY3Rpb25XaXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0
aW9uID0gMCwgdm9pZCogY29udGV4dCA9IDAsIFRocmVhZENvbmRpdGlvbiogc3luY0ZsYWcgPSAw
KQorICAgIEZ1bmN0aW9uV2l0aENvbnRleHQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiA9
IDAsIHZvaWQqIGNvbnRleHQgPSAwKQogICAgICAgICA6IGZ1bmN0aW9uKGZ1bmN0aW9uKQogICAg
ICAgICAsIGNvbnRleHQoY29udGV4dCkKLSAgICAgICAgLCBzeW5jRmxhZyhzeW5jRmxhZykKICAg
ICB7IAogICAgIH0KIH07CkBAIC05NCw5ICs5Miw3IEBAIHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCgpCiAgICAgICAgIH0KIAogICAgICAgICBpbnZvY2F0aW9uLmZ1bmN0aW9u
KGludm9jYXRpb24uY29udGV4dCk7Ci0gICAgICAgIGlmIChpbnZvY2F0aW9uLnN5bmNGbGFnKQot
ICAgICAgICAgICAgaW52b2NhdGlvbi5zeW5jRmxhZy0+c2lnbmFsKCk7Ci0gICAgICAgIAorCiAg
ICAgICAgIC8vIElmIHdlIGFyZSBydW5uaW5nIGFjY3VtdWxhdGVkIGZ1bmN0aW9ucyBmb3IgdG9v
IGxvbmcgc28gVUkgbWF5IGJlY29tZSB1bnJlc3BvbnNpdmUsIHdlIG5lZWQgdG8KICAgICAgICAg
Ly8geWllbGQgc28gdGhlIHVzZXIgaW5wdXQgY2FuIGJlIHByb2Nlc3NlZC4gT3RoZXJ3aXNlIHVz
ZXIgbWF5IG5vdCBiZSBhYmxlIHRvIGV2ZW4gY2xvc2UgdGhlIHdpbmRvdy4KICAgICAgICAgLy8g
VGhpcyBjb2RlIGhhcyBlZmZlY3Qgb25seSBpbiBjYXNlIHRoZSBzY2hlZHVsZURpc3BhdGNoRnVu
Y3Rpb25zT25NYWluVGhyZWFkKCkgaXMgaW1wbGVtZW50ZWQgaW4gYSB3YXkgdGhhdApAQCAtMTIx
LDMwICsxMTcsNiBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBm
dW5jdGlvbiwgdm9pZCogY29udGV4dCkKICAgICAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9u
c09uTWFpblRocmVhZCgpOwogfQogCi12b2lkIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KE1haW5U
aHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGZ1
bmN0aW9uKTsKLQotICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBmdW5jdGlvbihj
b250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRocmVhZENvbmRpdGlvbiBz
eW5jRmxhZzsKLSAgICBNdXRleCBjb25kaXRpb25NdXRleDsKLSAgICBib29sIG5lZWRUb1NjaGVk
dWxlID0gZmFsc2U7Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobWFpblRocmVh
ZEZ1bmN0aW9uUXVldWVNdXRleCgpKTsKLSAgICAgICAgbmVlZFRvU2NoZWR1bGUgPSBmdW5jdGlv
blF1ZXVlKCkuc2l6ZSgpID09IDA7Ci0gICAgICAgIGZ1bmN0aW9uUXVldWUoKS5hcHBlbmQoRnVu
Y3Rpb25XaXRoQ29udGV4dChmdW5jdGlvbiwgY29udGV4dCwgJnN5bmNGbGFnKSk7Ci0gICAgICAg
IGNvbmRpdGlvbk11dGV4LmxvY2soKTsKLSAgICB9Ci0KLSAgICBpZiAobmVlZFRvU2NoZWR1bGUp
Ci0gICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsKLSAgICBz
eW5jRmxhZy53YWl0KGNvbmRpdGlvbk11dGV4KTsKLX0KLQogdm9pZCBzZXRNYWluVGhyZWFkQ2Fs
bGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oIGIvSmF2YVNjcmlw
dENvcmUvd3RmL01haW5UaHJlYWQuaAppbmRleCA5ZjI5OGRhLi4wMWNlODA0IDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0
Zi9NYWluVGhyZWFkLmgKQEAgLTM3LDcgKzM3LDYgQEAgY2xhc3MgTXV0ZXg7CiB0eXBlZGVmIHZv
aWQgTWFpblRocmVhZEZ1bmN0aW9uKHZvaWQqKTsKIAogdm9pZCBjYWxsT25NYWluVGhyZWFkKE1h
aW5UaHJlYWRGdW5jdGlvbiosIHZvaWQqIGNvbnRleHQpOwotdm9pZCBjYWxsT25NYWluVGhyZWFk
QW5kV2FpdChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsKIAogdm9pZCBzZXRN
YWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKTsKIAo=
</data>
<flag name="review"
          id="13405"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>