<?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>27303</bug_id>
          
          <creation_ts>2009-07-15 09:25:01 -0700</creation_ts>
          <short_desc>[WINCE] implement createThreadInternal</short_desc>
          <delta_ts>2009-07-15 11:24:39 -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>Platform</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23154</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joe Mason">joenotcharles</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>manyoso</cc>
    
    <cc>staikos</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>131914</commentid>
    <comment_count>0</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2009-07-15 09:25:01 -0700</bug_when>
    <thetext>On WinCE, createThreadInternal can be implemented directly with CreateThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131915</commentid>
    <comment_count>1</comment_count>
      <attachid>32790</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2009-07-15 09:27:19 -0700</bug_when>
    <thetext>Created attachment 32790
patch to ThreadingWin.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131921</commentid>
    <comment_count>2</comment_count>
      <attachid>32790</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-15 09:41:46 -0700</bug_when>
    <thetext>Comment on attachment 32790
patch to ThreadingWin.cpp

&gt; +#if !PLATFORM(WINCE)
&gt;  #include &lt;process.h&gt;
&gt; +#endif

For?

&gt; +#if HAVE(ERRNO_H)
&gt; +#include &lt;errno.h&gt;
&gt; +#else
&gt; +#define NO_ERRNO
&gt; +#endif

I&apos;m not sure.  In a previous patch to RegisterFile we were using &apos;GetLastError&apos; instead of errno for WINCE.  Shouldn&apos;t we do the same here?  Moreover, we should create a proper WTF abstraction for ERRNO it seems.

&gt; +#if PLATFORM(WINCE)
&gt; +    // This should be safe on WINCE.  On Windows desktop it is not.
&gt; +    HANDLE threadHandle = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)wtfThreadEntryPoint, invocation, 0, (LPDWORD)&amp;threadIdentifier);

Why is it safe for WINCE, but not for desktop and what does it gain us?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131925</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-15 09:48:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 32790 [details])
&gt; &gt; +#if !PLATFORM(WINCE)
&gt; &gt;  #include &lt;process.h&gt;
&gt; &gt; +#endif
&gt; 
&gt; For?

process.h doesn&apos;t exist on WINCE

&gt; 
&gt; &gt; +#if HAVE(ERRNO_H)
&gt; &gt; +#include &lt;errno.h&gt;
&gt; &gt; +#else
&gt; &gt; +#define NO_ERRNO
&gt; &gt; +#endif
&gt; 
&gt; I&apos;m not sure.  In a previous patch to RegisterFile we were using &apos;GetLastError&apos;
&gt; instead of errno for WINCE.  Shouldn&apos;t we do the same here?  Moreover, we
&gt; should create a proper WTF abstraction for ERRNO it seems.

I&apos;m not sure replacing ERRNO with GetLastError is good in all cases. In this file, we can do that because the only case of using errno is after CreateThread() fails.

&gt; 
&gt; &gt; +#if PLATFORM(WINCE)
&gt; &gt; +    // This should be safe on WINCE.  On Windows desktop it is not.
&gt; &gt; +    HANDLE threadHandle = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)wtfThreadEntryPoint, invocation, 0, (LPDWORD)&amp;threadIdentifier);
&gt; 
&gt; Why is it safe for WINCE, but not for desktop and what does it gain us?

No gain. we do this because with don&apos;t have _beginthreadex() on WINCE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131945</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-15 10:24:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;m not sure replacing ERRNO with GetLastError is good in all cases. In this
&gt; file, we can do that because the only case of using errno is after
&gt; CreateThread() fails.

We should do that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131952</commentid>
    <comment_count>5</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-15 10:44:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I&apos;m not sure replacing ERRNO with GetLastError is good in all cases. In this
&gt; &gt; file, we can do that because the only case of using errno is after
&gt; &gt; CreateThread() fails.
&gt; 
&gt; We should do that then.

Seems like a separate bug+patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131954</commentid>
    <comment_count>6</comment_count>
      <attachid>32795</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2009-07-15 10:49:24 -0700</bug_when>
    <thetext>Created attachment 32795
Updated patch

Updated the patch to call ::GetLastError on WINCE (and also leave the NO_ERRNO path in, just in case there&apos;s a different platform without errno).

Also added a more detailed comment on why CreateThread is safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131956</commentid>
    <comment_count>7</comment_count>
      <attachid>32795</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-15 10:54:30 -0700</bug_when>
    <thetext>Comment on attachment 32795
Updated patch

I&apos;m not sure that NO_ERRNO is needed anymore but I don&apos;t see the harm either.  It will help in porting to other platforms I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131964</commentid>
    <comment_count>8</comment_count>
      <attachid>32795</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-15 11:18:47 -0700</bug_when>
    <thetext>Comment on attachment 32795
Updated patch

Looks good to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131965</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-15 11:24:39 -0700</bug_when>
    <thetext>Landed with r45931.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32790</attachid>
            <date>2009-07-15 09:27:19 -0700</date>
            <delta_ts>2009-07-15 10:49:24 -0700</delta_ts>
            <desc>patch to ThreadingWin.cpp</desc>
            <filename>bug27303.patch</filename>
            <type>text/plain</type>
            <size>2321</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlYzg2Y2VjLi41OTYxMjdjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDctMTUgIEdlb3JnZSBTdGFpa29zICA8Z2VvcmdlLnN0YWlrb3NAdG9yY2htb2Jp
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMwMworICAgICAgICBJ
bXBsZW1lbnQgY3JlYXRlVGhyZWFkSW50ZXJuYWwgZm9yIFdpbkNFLgorCisgICAgICAgICogd3Rm
L1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVhZEludGVybmFsKToK
KwogMjAwOS0wNy0xNSAgSm9lIE1hc29uICA8am9lLm1hc29uQHRvcmNobW9iaWxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Z1dpbi5jcHAKaW5kZXggZWExODY1Ni4uNWEwNTJmNiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Z1dpbi5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC04OSw3ICs5MCwxNCBAQAogI2lmICFVU0UoUFRIUkVBRFMpICYmIFBM
QVRGT1JNKFdJTl9PUykKICNpbmNsdWRlICJUaHJlYWRTcGVjaWZpYy5oIgogI2VuZGlmCisjaWYg
IVBMQVRGT1JNKFdJTkNFKQogI2luY2x1ZGUgPHByb2Nlc3MuaD4KKyNlbmRpZgorI2lmIEhBVkUo
RVJSTk9fSCkKKyNpbmNsdWRlIDxlcnJuby5oPgorI2Vsc2UKKyNkZWZpbmUgTk9fRVJSTk8KKyNl
bmRpZgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjEwLDkgKzIxOCwxOCBAQCBUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIGNvbgogICAgIHVuc2lnbmVkIHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSAwOwogICAgIFRocmVhZEZ1bmN0aW9uSW52b2NhdGlv
biogaW52b2NhdGlvbiA9IG5ldyBUaHJlYWRGdW5jdGlvbkludm9jYXRpb24oZW50cnlQb2ludCwg
ZGF0YSk7CisjaWYgUExBVEZPUk0oV0lOQ0UpCisgICAgLy8gVGhpcyBzaG91bGQgYmUgc2FmZSBv
biBXSU5DRS4gIE9uIFdpbmRvd3MgZGVza3RvcCBpdCBpcyBub3QuCisgICAgSEFORExFIHRocmVh
ZEhhbmRsZSA9IENyZWF0ZVRocmVhZCgwLCAwLCAoTFBUSFJFQURfU1RBUlRfUk9VVElORSl3dGZU
aHJlYWRFbnRyeVBvaW50LCBpbnZvY2F0aW9uLCAwLCAoTFBEV09SRCkmdGhyZWFkSWRlbnRpZmll
cik7CisjZWxzZQogICAgIEhBTkRMRSB0aHJlYWRIYW5kbGUgPSByZWludGVycHJldF9jYXN0PEhB
TkRMRT4oX2JlZ2ludGhyZWFkZXgoMCwgMCwgd3RmVGhyZWFkRW50cnlQb2ludCwgaW52b2NhdGlv
biwgMCwgJnRocmVhZElkZW50aWZpZXIpKTsKKyNlbmRpZgogICAgIGlmICghdGhyZWFkSGFuZGxl
KSB7CisjaWZkZWYgTk9fRVJSTk8KKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRl
IHRocmVhZCBhdCBlbnRyeSBwb2ludCAlcCB3aXRoIGRhdGEgJXAuIiwgZW50cnlQb2ludCwgZGF0
YSk7CisjZWxzZQogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGhyZWFkIGF0
IGVudHJ5IHBvaW50ICVwIHdpdGggZGF0YSAlcDogJWxkIiwgZW50cnlQb2ludCwgZGF0YSwgZXJy
bm8pOworI2VuZGlmCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="17159"
          type_id="1"
          status="-"
          setter="manyoso"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32795</attachid>
            <date>2009-07-15 10:49:24 -0700</date>
            <delta_ts>2009-07-15 11:18:47 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug27303.patch</filename>
            <type>text/plain</type>
            <size>2591</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlYzg2Y2VjLi41OTYxMjdjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMDktMDctMTUgIEdlb3JnZSBTdGFpa29zICA8Z2VvcmdlLnN0YWlrb3NAdG9yY2htb2Jp
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMwMworICAgICAgICBJ
bXBsZW1lbnQgY3JlYXRlVGhyZWFkSW50ZXJuYWwgZm9yIFdpbkNFLgorCisgICAgICAgICogd3Rm
L1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVhZEludGVybmFsKToK
KwogMjAwOS0wNy0xNSAgSm9lIE1hc29uICA8am9lLm1hc29uQHRvcmNobW9iaWxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Z1dpbi5jcHAKaW5kZXggZWExODY1Ni4uY2NjYmRhMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Z1dpbi5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC04OSw3ICs5MCwxNCBAQAogI2lmICFVU0UoUFRIUkVBRFMpICYmIFBM
QVRGT1JNKFdJTl9PUykKICNpbmNsdWRlICJUaHJlYWRTcGVjaWZpYy5oIgogI2VuZGlmCisjaWYg
IVBMQVRGT1JNKFdJTkNFKQogI2luY2x1ZGUgPHByb2Nlc3MuaD4KKyNlbmRpZgorI2lmIEhBVkUo
RVJSTk9fSCkKKyNpbmNsdWRlIDxlcnJuby5oPgorI2Vsc2UKKyNkZWZpbmUgTk9fRVJSTk8KKyNl
bmRpZgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjEwLDkgKzIxOCwyMSBAQCBUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIGNvbgogICAgIHVuc2lnbmVkIHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSAwOwogICAgIFRocmVhZEZ1bmN0aW9uSW52b2NhdGlv
biogaW52b2NhdGlvbiA9IG5ldyBUaHJlYWRGdW5jdGlvbkludm9jYXRpb24oZW50cnlQb2ludCwg
ZGF0YSk7CisjaWYgUExBVEZPUk0oV0lOQ0UpCisgICAgLy8gVGhpcyBpcyBzYWZlIG9uIFdJTkNF
LCBzaW5jZSBDUlQgaXMgaW4gdGhlIGNvcmUgYW5kIGlubmF0ZWx5IG11bHRpdGhyZWFkZWQuCisg
ICAgLy8gT24gZGVza3RvcCBXaW5kb3dzLCBuZWVkIHRvIHVzZSBfYmVnaW50aHJlYWRleCAobm90
IGF2YWlsYWJsZSBvbiBXaW5DRSkgaWYgdXNpbmcgYW55IENSVCBmdW5jdGlvbnMKKyAgICBIQU5E
TEUgdGhyZWFkSGFuZGxlID0gQ3JlYXRlVGhyZWFkKDAsIDAsIChMUFRIUkVBRF9TVEFSVF9ST1VU
SU5FKXd0ZlRocmVhZEVudHJ5UG9pbnQsIGludm9jYXRpb24sIDAsIChMUERXT1JEKSZ0aHJlYWRJ
ZGVudGlmaWVyKTsKKyNlbHNlCiAgICAgSEFORExFIHRocmVhZEhhbmRsZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8SEFORExFPihfYmVnaW50aHJlYWRleCgwLCAwLCB3dGZUaHJlYWRFbnRyeVBvaW50LCBp
bnZvY2F0aW9uLCAwLCAmdGhyZWFkSWRlbnRpZmllcikpOworI2VuZGlmCiAgICAgaWYgKCF0aHJl
YWRIYW5kbGUpIHsKKyNpZiBQTEFURk9STShXSU5DRSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHRocmVhZCBhdCBlbnRyeSBwb2ludCAlcCB3aXRoIGRhdGEgJXA6ICVsZCIs
IGVudHJ5UG9pbnQsIGRhdGEsIDo6R2V0TGFzdEVycm9yKCkpOworI2VsaWYgZGVmaW5lZChOT19F
UlJOTykKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHRocmVhZCBhdCBlbnRy
eSBwb2ludCAlcCB3aXRoIGRhdGEgJXAuIiwgZW50cnlQb2ludCwgZGF0YSk7CisjZWxzZQogICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGhyZWFkIGF0IGVudHJ5IHBvaW50ICVw
IHdpdGggZGF0YSAlcDogJWxkIiwgZW50cnlQb2ludCwgZGF0YSwgZXJybm8pOworI2VuZGlmCiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="17164"
          type_id="1"
          status="+"
          setter="manyoso"
    />
          </attachment>
      

    </bug>

</bugzilla>