<?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>18488</bug_id>
          
          <creation_ts>2008-04-14 06:09:51 -0700</creation_ts>
          <short_desc>FastMalloc doesn&apos;t release thread-specific data on Windows</short_desc>
          <delta_ts>2008-04-14 09:34:04 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>77547</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-04-14 06:09:51 -0700</bug_when>
    <thetext>FastMalloc uses pthreads support for thread-specific storage to make sure that destructors for data get called. However, pthreads-win32 only calls those from pthread_exit (or when the thread&apos;s main function returns, but only for threads created with pthread_create).

Since ThreadingWin.cpp uses native Win32 functions, I believe that this data just leaks when a thread finishes.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77548</commentid>
    <comment_count>1</comment_count>
      <attachid>20529</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-04-14 06:17:16 -0700</bug_when>
    <thetext>Created attachment 20529
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77576</commentid>
    <comment_count>2</comment_count>
      <attachid>20529</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-14 08:59:56 -0700</bug_when>
    <thetext>Comment on attachment 20529
proposed fix

+#include &lt;process.h&gt;
 #include &quot;MainThread.h&quot;
 #include &lt;windows.h&gt;
 #include &lt;wtf/HashMap.h&gt;
 #include &lt;wtf/MathExtras.h&gt;

I think process.h should be moved below MainThread.h

+unsigned __stdcall wtfThreadEntryPoint(void* param)

I think this should be declared static.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77582</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-04-14 09:34:04 -0700</bug_when>
    <thetext>Committed revision 31864 with suggested changes.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20529</attachid>
            <date>2008-04-14 06:17:16 -0700</date>
            <delta_ts>2008-04-14 08:59:56 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>FastMalloc.txt</filename>
            <type>text/plain</type>
            <size>4075</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDMxODYwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMDQtMTQgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODQ4OAorICAgICAgICBGYXN0TWFsbG9jIGRvZXNuJ3QgcmVsZWFzZSB0aHJlYWQtc3Bl
Y2lmaWMgZGF0YSBvbiBXaW5kb3dzCisKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoK
KyAgICAgICAgKFdURjo6dGhyZWFkTWFwTXV0ZXgpOiAoV1RGOjppbml0aWFsaXplVGhyZWFkaW5n
KTogQ2FsbCB0aHJlYWRNYXBNdXRleCBvbmNlIHRvIGluaXRpYWxpemUgdGhlIHN0YXRpYyBzYWZl
bHkuCisgICAgICAgIChXVEY6OlRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbjo6VGhyZWFkRnVuY3Rp
b25JbnZvY2F0aW9uKTogQWRkZWQgYSBzdHJ1Y3R1cmUgdG8gd3JhcCB0aHJlYWQgZW50cnkgcG9p
bnQgYW5kIGFyZ3VtZW50cy4KKyAgICAgICAgKFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCk6IE1h
a2Ugc3VyZSB0byBlbmQgYWxsIFdURiB0aHJlYWRzIHdpdGggcHRocmVhZF9leGl0KCksIHRvIGdp
dmUgcHRocmVhZHMtd2luMzIgYSBjaGFuY2UgdG8gY2FsbAorICAgICAgICBkZXN0cnVjdG9ycyBv
ZiB0aHJlYWQtc3BlY2lmaWMgZGF0YS4KKyAgICAgICAgKFdURjo6Y3JlYXRlVGhyZWFkKTogVXNl
IF9iZWdpbnRocmVhZGV4IGluc3RlYWQgb2YgQ3JlYXRlVGhyZWFkLCBiZWNhdXNlIE1TRE4gc2F5
cyBzby4gQWxzbyByZW1vdmVkIGEgY2FsbCB0byBDcmVhdGVFdmVudCwKKyAgICAgICAgZm9yIHdo
aWNoIEkgY291bGQgc2VlIG5vIHJlYXNvbiBhdCBhbGwuCisKIDIwMDgtMDQtMTEgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCShyZXZpc2lvbiAzMTg0OCkKKysr
IEphdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MywzMyArNjMsNDEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRpbmcu
aCIKIAorI2luY2x1ZGUgPHByb2Nlc3MuaD4KICNpbmNsdWRlICJNYWluVGhyZWFkLmgiCiAjaW5j
bHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAorI2lmIFBMQVRGT1JNKFdJTikKKy8vIEN1cnJlbnRseSwgQXBwbGUn
cyBXaW5kb3dzIHBvcnQgdXNlcyBhIG1peHR1cmUgb2YgbmF0aXZlIGFuZCBwdGhyZWFkcyBmdW5j
dGlvbnMgaW4gRmFzdE1hbGxvYy4KKy8vIFRvIGVuc3VyZSB0aGF0IHRocmVhZC1zcGVjaWZpYyBk
YXRhIGlzIHByb3Blcmx5IGRlc3Ryb3llZCwgd2UgbmVlZCB0byBlbmQgZWFjaCB0aHJlYWQgd2l0
aCBwdGhyZWFkX2V4aXQoKS4KKyNpbmNsdWRlIDxwdGhyZWFkcy5oPgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXVEYgewogCiBNdXRleCogYXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXg7CiAK
IHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1haW5UaHJlYWRJZGVudGlmaWVyOwogCitzdGF0aWMg
TXV0ZXgmIHRocmVhZE1hcE11dGV4KCkKK3sKKyAgICBzdGF0aWMgTXV0ZXggbXV0ZXg7CisgICAg
cmV0dXJuIG11dGV4OworfQorCiB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogewogICAgIGlm
ICghYXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXgpIHsKICAgICAgICAgYXRvbWljYWxs
eUluaXRpYWxpemVkU3RhdGljTXV0ZXggPSBuZXcgTXV0ZXg7CisgICAgICAgIHRocmVhZE1hcE11
dGV4KCk7CiAgICAgICAgIHd0Zl9yYW5kb21faW5pdCgpOwogICAgICAgICBpbml0aWFsaXplTWFp
blRocmVhZCgpOwogICAgICAgICBtYWluVGhyZWFkSWRlbnRpZmllciA9IGN1cnJlbnRUaHJlYWQo
KTsKICAgICB9CiB9CiAKLXN0YXRpYyBNdXRleCYgdGhyZWFkTWFwTXV0ZXgoKQotewotICAgIHN0
YXRpYyBNdXRleCBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Ci19Ci0KIHN0YXRpYyBIYXNoTWFw
PERXT1JELCBIQU5ETEU+JiB0aHJlYWRNYXAoKQogewogICAgIHN0YXRpYyBIYXNoTWFwPERXT1JE
LCBIQU5ETEU+IG1hcDsKQEAgLTExNSwxNCArMTIzLDM2IEBAIHN0YXRpYyB2b2lkIGNsZWFyVGhy
ZWFkSGFuZGxlRm9ySWRlbnRpZmkKICAgICB0aHJlYWRNYXAoKS5yZW1vdmUoaWQpOwogfQogCitz
dHJ1Y3QgVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uIHsKKyAgICBUaHJlYWRGdW5jdGlvbkludm9j
YXRpb24oVGhyZWFkRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGRhdGEpIDogZnVuY3Rpb24oZnVu
Y3Rpb24pLCBkYXRhKGRhdGEpIHt9CisKKyAgICBUaHJlYWRGdW5jdGlvbiBmdW5jdGlvbjsKKyAg
ICB2b2lkKiBkYXRhOworfTsKKwordW5zaWduZWQgX19zdGRjYWxsIHd0ZlRocmVhZEVudHJ5UG9p
bnQodm9pZCogcGFyYW0pCit7CisgICAgVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uIGludm9jYXRp
b24gPSAqc3RhdGljX2Nhc3Q8VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uKj4ocGFyYW0pOworICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24qPihwYXJhbSk7CisK
KyAgICB2b2lkKiByZXN1bHQgPSBpbnZvY2F0aW9uLmZ1bmN0aW9uKGludm9jYXRpb24uZGF0YSk7
CisKKyNpZiBQTEFURk9STShXSU4pCisgICAgLy8gcHRocmVhZHMtd2luMzIga25vd3MgaG93IHRv
IHdvcmsgd2l0aCB0aHJlYWRzIGNyZWF0ZWQgd2l0aCBXaW4zMiBvciBDUlQgZnVuY3Rpb25zLCBz
byBpdCdzIE9LIHRvIG1peCBBUElzLgorICAgIHB0aHJlYWRfZXhpdChyZXN1bHQpOworI2VuZGlm
CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4ocmVzdWx0KTsKK30KKwog
VGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwg
dm9pZCogZGF0YSkKIHsKLSAgICBEV09SRCB0aHJlYWRJZGVudGlmaWVyID0gMDsKKyAgICB1bnNp
Z25lZCB0aHJlYWRJZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElE
ID0gMDsKLSAgICBIQU5ETEUgaEV2ZW50ID0gOjpDcmVhdGVFdmVudCgwLCBGQUxTRSwgRkFMU0Us
IDApOwotICAgIEhBTkRMRSB0aHJlYWRIYW5kbGUgPSA6OkNyZWF0ZVRocmVhZCgwLCAwLCAoTFBU
SFJFQURfU1RBUlRfUk9VVElORSllbnRyeVBvaW50LCBkYXRhLCAwLCAmdGhyZWFkSWRlbnRpZmll
cik7CisgICAgVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uKiBpbnZvY2F0aW9uID0gbmV3IFRocmVh
ZEZ1bmN0aW9uSW52b2NhdGlvbihlbnRyeVBvaW50LCBkYXRhKTsKKyAgICBIQU5ETEUgdGhyZWFk
SGFuZGxlID0gcmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KF9iZWdpbnRocmVhZGV4KDAsIDAsIHd0
ZlRocmVhZEVudHJ5UG9pbnQsIGludm9jYXRpb24sIDAsICZ0aHJlYWRJZGVudGlmaWVyKSk7CiAg
ICAgaWYgKCF0aHJlYWRIYW5kbGUpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3Jl
YXRlIHRocmVhZCBhdCBlbnRyeSBwb2ludCAlcCB3aXRoIGRhdGEgJXAiLCBlbnRyeVBvaW50LCBk
YXRhKTsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHRocmVhZCBhdCBlbnRy
eSBwb2ludCAlcCB3aXRoIGRhdGEgJXA6ICVsZCIsIGVudHJ5UG9pbnQsIGRhdGEsIGVycm5vKTsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCg==
</data>
<flag name="review"
          id="8945"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>