<?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>81706</bug_id>
          
          <creation_ts>2012-03-20 15:46:10 -0700</creation_ts>
          <short_desc>[BlackBerry] destruction sequence in LayerCompositingThread is confusing</short_desc>
          <delta_ts>2012-03-27 13:06:34 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joe Mason">joenotcharles</reporter>
          <assigned_to name="Joe Mason">joenotcharles</assigned_to>
          <cc>anilsson</cc>
    
    <cc>levin+threading</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>583524</commentid>
    <comment_count>0</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-20 15:46:10 -0700</bug_when>
    <thetext>LayerCompositingThread&apos;s destructor looks like this:

LayerCompositingThread::~LayerCompositingThread()
{
    // Unfortunately, ThreadSafeShared&lt;T&gt; is hardwired to call T::~T().
    // To switch threads in case the last reference is released on the
    // WebKit thread, we send a sync message to the compositing thread.
    destroyOnCompositingThread();
}

And then destroyOnCompositingThread does a synchronous dispatch to the compositing thread to clean up the object.  It&apos;s weird to have a dispatch like this happen from within the destructor, and it&apos;s easy to miss the fact that it&apos;s synchronous and believe this is a delayed destruction.

It would be much cleaner to flip this around: have ThreadSafeShared&lt;T&gt; call a function called destroyOnCompositingThread, which calls &quot;delete this&quot;, and move all the cleanup into the standard destructor.  (Also, this might let us get rid of the sync dispatch and just use a regular dispatch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589131</commentid>
    <comment_count>1</comment_count>
      <attachid>134114</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-27 12:17:44 -0700</bug_when>
    <thetext>Created attachment 134114
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589133</commentid>
    <comment_count>2</comment_count>
      <attachid>134114</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-27 12:21:03 -0700</bug_when>
    <thetext>Comment on attachment 134114
patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589189</commentid>
    <comment_count>3</comment_count>
      <attachid>134114</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 13:06:30 -0700</bug_when>
    <thetext>Comment on attachment 134114
patch

Clearing flags on attachment: 134114

Committed r112304: &lt;http://trac.webkit.org/changeset/112304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589190</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 13:06:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134114</attachid>
            <date>2012-03-27 12:17:44 -0700</date>
            <delta_ts>2012-03-27 13:06:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-BlackBerry-fix-confusing-destruction-sequence-in-Lay.patch</filename>
            <type>text/plain</type>
            <size>5517</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">RnJvbSAyZDgzZjI2NzE0ZTE4ZDY2MDkwODI0MDQ3MzMyMzUyMTYyMTdmY2UwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2UgTWFzb24gPGptYXNvbkByaW0uY29tPgpEYXRlOiBUdWUs
IDI3IE1hciAyMDEyIDE1OjE0OjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzNdIAlbQmxhY2tC
ZXJyeV0gZml4IGNvbmZ1c2luZyBkZXN0cnVjdGlvbiBzZXF1ZW5jZQogaW4gTGF5ZXJDb21wb3Np
dGluZ1RocmVhZCAKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTcw
NgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCglMYXllckNvbXBvc2l0aW5n
VGhyZWFkIGhhcyBhIGRlc3RydWN0b3IgdGhhdCBkb2VzIGEgc3luY2hyb25vdXMKCWRpc3BhdGNo
IHRvIHRoZSBjb21wb3NpdGluZyB0aHJlYWQgYW5kIHRoZW4gZG9lcyB0aGUgYWN0dWFsIGNsZWFu
dXAKCWZyb20gYSBoZWxwZXIgZnVuY3Rpb24uIFRoaXMgaXMgY29uZnVzaW5nLkl0IHNob3VsZCBi
ZSB0aGUKCW9wcG9zaXRlOiB0aGUgaGVscGVyIGZ1bmN0aW9uIGRpc3BhdGNoZXMgdG8gdGhlIGNv
bXBvc2l0aW5nIHRocmVhZCwKCXdoaWNoIGNhbGxzIGRlbGV0ZS4KCglObyBuZXcgdGVzdHMgc2lu
Y2UgdGhlIGV4aXN0aW5nIGFuaW1hdGlvbiB0ZXN0cyB3aWxsIGV4ZXJjaXNlIHRoaXMKCWNvZGUu
CgogICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5n
VGhyZWFkLmNwcDoKICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6ZGVz
dHJveU9uQ29tcG9zaXRpbmdUaHJlYWQpOgogICAgICAgIChXZWJDb3JlKToKICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6fkxheWVyQ29tcG9zaXRpbmdUaHJlYWQpOgog
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhy
ZWFkLmg6CiAgICAgICAgKExheWVyQ29tcG9zaXRpbmdUaHJlYWQpOgogICAgICAgIChXVEYpOgog
ICAgICAgIChXVEY6Ojo6ZGVyZWYpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKysrKysrKysrKysrKwogLi4uL2dy
YXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAgfCAgIDE1ICsrKysr
LS0tLS0tCiAuLi4vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmgg
ICB8ICAgMjAgKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMo
KyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MzBmMjk5Li44ODRiZjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDMtMjcgIEpvZSBNYXNvbiAgPGptYXNvbkBy
aW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBmaXggY29uZnVzaW5nIGRlc3RydWN0aW9u
IHNlcXVlbmNlIGluIExheWVyQ29tcG9zaXRpbmdUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCBoYXMgYSBk
ZXN0cnVjdG9yIHRoYXQgZG9lcyBhIHN5bmNocm9ub3VzCisgICAgICAgIGRpc3BhdGNoIHRvIHRo
ZSBjb21wb3NpdGluZyB0aHJlYWQgYW5kIHRoZW4gZG9lcyB0aGUgYWN0dWFsIGNsZWFudXAKKyAg
ICAgICAgZnJvbSBhIGhlbHBlciBmdW5jdGlvbi4gVGhpcyBpcyBjb25mdXNpbmcuSXQgc2hvdWxk
IGJlIHRoZQorICAgICAgICBvcHBvc2l0ZTogdGhlIGhlbHBlciBmdW5jdGlvbiBkaXNwYXRjaGVz
IHRvIHRoZSBjb21wb3NpdGluZyB0aHJlYWQsCisgICAgICAgIHdoaWNoIGNhbGxzIGRlbGV0ZS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlIGV4aXN0aW5nIGFuaW1hdGlvbiB0ZXN0
cyB3aWxsIGV4ZXJjaXNlIHRoaXMKKyAgICAgICAgY29kZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkZXN0cm95T25Db21wb3NpdGluZ1Ro
cmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9z
aXRpbmdUaHJlYWQ6On5MYXllckNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuaDoKKyAgICAgICAg
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6
OjpkZXJlZik6CisKIDIwMTItMDMtMjYgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRv
cmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQ3JlZGVudGlhbEJhY2tp
bmdTdG9yZSBpbXBsZW1lbnQgZW5jcnlwdFN0cmluZygpIGFuZCBkZWNyeXB0U3RyaW5nKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5
ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuY3BwCmluZGV4IDg5YTljZjcuLmE0
MTQ5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmNwcApAQCAt
NzEsMTQgKzcxLDYgQEAgTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZChMYXllclR5cGUgdHlwZSwgUGFzc1JlZlB0cjxMYXllclQKIHsKIH0KIAotTGF5ZXJDb21w
b3NpdGluZ1RocmVhZDo6fkxheWVyQ29tcG9zaXRpbmdUaHJlYWQoKQotewotICAgIC8vIFVuZm9y
dHVuYXRlbHksIFRocmVhZFNhZmVTaGFyZWQ8VD4gaXMgaGFyZHdpcmVkIHRvIGNhbGwgVDo6flQo
KS4KLSAgICAvLyBUbyBzd2l0Y2ggdGhyZWFkcyBpbiBjYXNlIHRoZSBsYXN0IHJlZmVyZW5jZSBp
cyByZWxlYXNlZCBvbiB0aGUKLSAgICAvLyBXZWJLaXQgdGhyZWFkLCB3ZSBzZW5kIGEgc3luYyBt
ZXNzYWdlIHRvIHRoZSBjb21wb3NpdGluZyB0aHJlYWQuCi0gICAgZGVzdHJveU9uQ29tcG9zaXRp
bmdUaHJlYWQoKTsKLX0KLQogdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkZXN0cm95T25D
b21wb3NpdGluZ1RocmVhZCgpCiB7CiAgICAgaWYgKCFpc0NvbXBvc2l0aW5nVGhyZWFkKCkpIHsK
QEAgLTg4LDYgKzgwLDEzIEBAIHZvaWQgTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6ZGVzdHJveU9u
Q29tcG9zaXRpbmdUaHJlYWQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK0xheWVyQ29tcG9zaXRpbmdUaHJlYWQ6On5MYXllckNvbXBvc2l0aW5nVGhy
ZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNDb21wb3NpdGluZ1RocmVhZCgpKTsKKwogICAgIG1fdGls
ZXItPmxheWVyQ29tcG9zaXRpbmdUaHJlYWREZXN0cm95ZWQoKTsKIAogICAgIEFTU0VSVCghc3Vw
ZXJsYXllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmgKaW5kZXgg
ZTFkZTc0ZS4uNGQ5YzI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFk
LmgKQEAgLTUzLDcgKzUzLDYgQEAgY2xhc3MgQnVmZmVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIERlc3Ryb3lPbkNvbXBvc2l0aW5nVGhyZWFkOwogY2xhc3MgTGF5ZXJSZW5kZXJl
cjsKIAogY2xhc3MgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxMYXllckNvbXBvc2l0aW5nVGhyZWFkPiwgcHVibGljIExheWVyRGF0YSwgcHVibGlj
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHdWFyZGVkUG9pbnRlckJhc2UgewpAQCAtMTQ1LDcgKzE0
NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTGF5ZXJDb21wb3NpdGluZ1RocmVhZChMYXll
clR5cGUsIFBhc3NSZWZQdHI8TGF5ZXJUaWxlcj4pOwogCi0gICAgZnJpZW5kIGNsYXNzIERlc3Ry
b3lPbkNvbXBvc2l0aW5nVGhyZWFkOworICAgIGZyaWVuZCBjbGFzcyBXVEY6OlRocmVhZFNhZmVS
ZWZDb3VudGVkPFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQ+OwogICAgIHZvaWQgZGVz
dHJveU9uQ29tcG9zaXRpbmdUaHJlYWQoKTsKIAogICAgIHZvaWQgdXBkYXRlVGlsZUNvbnRlbnRz
KGNvbnN0IEludFJlY3QmIHRpbGUpOwpAQCAtMTg4LDggKzE4NywyNSBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxMYXllclRpbGVyPiBtX3RpbGVyOwogfTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV1RGIHsKKworLy8gTGF5ZXJDb21wb3NpdGluZ1RocmVhZCBvYmplY3Rz
IG11c3QgYmUgZGVzdHJveWVkIG9uIHRoZSBjb21wb3NpdGluZyB0aHJlYWQuCisvLyBCdXQgaXQn
cyBwb3NzaWJsZSBmb3IgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIGJlIGhlbGQgYnkgdGhlIFdlYktp
dCB0aHJlYWQuCisvLyBTbyB3ZSBjcmVhdGUgYSBjdXN0b20gc3BlY2lhbGl6YXRpb24gb2YgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQgd2hpY2ggY2FsbHMgYQorLy8gZnVuY3Rpb24gdGhhdCBlbnN1cmVz
IHRoZSBkZXN0cnVjdG9yIGlzIGNhbGxlZCBvbiB0aGUgY29ycmVjdCB0aHJlYWQsIHJhdGhlcgor
Ly8gdGhhbiBjYWxsaW5nIGRlbGV0ZSBkaXJlY3RseS4KK3RlbXBsYXRlPD4KK2lubGluZSB2b2lk
IFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQ+Ojpk
ZXJlZigpCit7CisgICAgaWYgKGRlcmVmQmFzZSgpKQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkKj4odGhpcyktPmRlc3Ryb3lPbkNvbXBvc2l0aW5n
VGhyZWFkKCk7CiB9CiAKK30gLy8gbmFtZXNwYWNlIFdURgorCisKICNlbmRpZiAvLyBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNlbmRpZgotLSAKMS43LjUuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>