<?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>36832</bug_id>
          
          <creation_ts>2010-03-30 09:32:36 -0700</creation_ts>
          <short_desc>[Qt] crash in debug mode just before exit</short_desc>
          <delta_ts>2010-06-04 00:52:35 -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 Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</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>35784</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agbakken</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>koshuin</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>206041</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-30 09:32:36 -0700</bug_when>
    <thetext>My test case was the following: starting QtLauncher (a debug build), navigating to wave.google.com, sign in, wait for a little but do not wait until it could load, and close the window (it can be necessary because in that case there are living timers that has not been fired). Unfortunately, it is not easily reproducible. Actually, I started QtLauncher inside gdb, but I cannot say it is always reproducible even with gdb. If I remember correctly I also saw this problem inside valgrind before (what made me angry since valgrind is unusable for leak hunting when the application do not exits normally).
From the backtrace I realized that isMainThread() is called during the destruction of the QCoreApplication inside an ASSERT.
In that case it crashes since it tries to get the thread id of the QCoreApplication (not the ASSERT crashed but the execution of it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206043</commentid>
    <comment_count>1</comment_count>
      <attachid>52048</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-30 09:34:06 -0700</bug_when>
    <thetext>Created attachment 52048
backtrace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206047</commentid>
    <comment_count>2</comment_count>
      <attachid>52049</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-30 09:57:43 -0700</bug_when>
    <thetext>Created attachment 52049
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206234</commentid>
    <comment_count>3</comment_count>
      <attachid>52049</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-30 16:09:45 -0700</bug_when>
    <thetext>Comment on attachment 52049
proposed patch

Why don&apos;t we save off the thread id of the main thread in a global static instead?  I would look at other implementations including the posix threading implementation before making this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206240</commentid>
    <comment_count>4</comment_count>
      <attachid>52049</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-30 16:15:40 -0700</bug_when>
    <thetext>Comment on attachment 52049
proposed patch

Why don&apos;t we save off the thread id of the main thread in a global static instead?  I would look at other implementations including the posix threading implementation before making this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206248</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-30 16:20:30 -0700</bug_when>
    <thetext>Ok, what have I done is horribly overcomplicated, so I remove review flag and
start to thinking about a more appropriate solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206259</commentid>
    <comment_count>6</comment_count>
      <attachid>52100</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-30 16:52:11 -0700</bug_when>
    <thetext>Created attachment 52100
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206469</commentid>
    <comment_count>7</comment_count>
      <attachid>52100</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-31 05:43:51 -0700</bug_when>
    <thetext>Comment on attachment 52100
proposed patch

I would suggest adding at least a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206516</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-03-31 08:14:25 -0700</bug_when>
    <thetext>Actually this will be the most straightforward:
bool isMainThread()
{
    static QThread* mainThread = QCoreApplication::instance()-&gt;thread();
    return QThread::currentThread() == mainThread;
}

, but I am not sure that using a static is thread safe at all platforms.
What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207487</commentid>
    <comment_count>9</comment_count>
      <attachid>52100</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 16:44:52 -0700</bug_when>
    <thetext>Comment on attachment 52100
proposed patch

This is definitely better.  Why do we need both mainThread and mainThreadIdentifier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207516</commentid>
    <comment_count>10</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 17:08:14 -0700</bug_when>
    <thetext>This seems like the same issue I was talking about on IRC and in  https://bugs.webkit.org/show_bug.cgi?id=35251#c5. 
All you need to do to get this crash is load www.cnn.com and exit QtLauncher.
The cause of the crash is that SharedTimerQt &apos;s parent is QCoreApplication and I think this is wrong. (dll depends on the application that loaded it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207831</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-04-02 05:10:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; This seems like the same issue I was talking about on IRC and in 
&gt; https://bugs.webkit.org/show_bug.cgi?id=35251#c5. 
&gt; All you need to do to get this crash is load www.cnn.com and exit QtLauncher.
&gt; The cause of the crash is that SharedTimerQt &apos;s parent is QCoreApplication and
&gt; I think this is wrong. (dll depends on the application that loaded it)

As I understand the 2 bug are not related to each other.
QCoreApplication is needed to be the parent of SharedTimerQt if we want to do final cleanup (not just memory deallocation, but flushing to disk, etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207832</commentid>
    <comment_count>12</comment_count>
      <attachid>52408</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-04-02 05:15:08 -0700</bug_when>
    <thetext>Created attachment 52408
proposed patch (hopefully final)

So, let&apos;s trust in c++ (and all of it&apos;s implementation) and solve this with a static :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207842</commentid>
    <comment_count>13</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-02 06:15:08 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; As I understand the 2 bug are not related to each other.
&gt; QCoreApplication is needed to be the parent of SharedTimerQt if we want to do
&gt; final cleanup (not just memory deallocation, but flushing to disk, etc).
The bugs are not related. Only comment #5 is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209587</commentid>
    <comment_count>14</comment_count>
    <who name="Janne Koskinen">koshuin</who>
    <bug_when>2010-04-07 05:41:17 -0700</bug_when>
    <thetext>I fixed similar issue on Symbian builds few weeks back https://bugs.webkit.org/show_bug.cgi?id=34081

The patch is ok from my PoV if it is only the ASSERT that this gets away with.
what worries me is this line:
WebCore::JSDOMWindowBase::commonJSGlobalData ()

Reason why you are seeing this crash is TLS getting destroyed at main() exit and then getting reconstructed at the time of timer trigger. I remember we had same issue with Symbian builds at some point. My fix at then was to cancel all timers at d&apos;tor instead of firing them (the right thing to do), but there was some reason why this wasn&apos;t accepted. Problem I think still exists in Symbian, but there is now no use-case that would bring it to surface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213523</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-16 17:25:18 -0700</bug_when>
    <thetext>See also bug 37521 for an alternate solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214022</commentid>
    <comment_count>16</comment_count>
      <attachid>53678</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-04-19 07:38:36 -0700</bug_when>
    <thetext>Created attachment 53678
proposed patch

Destruct the shared timer instance and firing all timers last time before ~QApplication,
as suggested by Yael and Zoltan (Zoltan did that in the other bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214026</commentid>
    <comment_count>17</comment_count>
      <attachid>53678</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-04-19 07:47:59 -0700</bug_when>
    <thetext>Comment on attachment 53678
proposed patch

Looks good to me, but why was the parent removed? You could add a comment about that in the ChangeLog. Also I would keeop the changelog lines shorter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214032</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-19 08:01:36 -0700</bug_when>
    <thetext>I like this patch, too! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214034</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-19 08:03:46 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 53678 [details])
&gt; Looks good to me, but why was the parent removed? You could add a comment about
&gt; that in the ChangeLog. Also I would keeop the changelog lines shorter

The connection achieves what the parent relationship tried to achieve earlier. But when the QApplication destructor ran it was too late.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214108</commentid>
    <comment_count>20</comment_count>
      <attachid>53678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-19 11:01:07 -0700</bug_when>
    <thetext>Comment on attachment 53678
proposed patch

Clearing flags on attachment: 53678

Committed r57818: &lt;http://trac.webkit.org/changeset/57818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214109</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-19 11:01:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214385</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-19 17:45:45 -0700</bug_when>
    <thetext>*** Bug 37521 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214839</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-20 12:15:19 -0700</bug_when>
    <thetext>Revision r57818 cherry-picked into qtwebkit-2.0 with commit 95c4d11167cff1a8fd1e124e4655fedc0b00944a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234091</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-04 00:52:35 -0700</bug_when>
    <thetext>Revision r57818 cherry-picked into qtwebkit-4.6 with commit d6d6c3821ed111b214a753f1ce8fa969c1a94dc3</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52048</attachid>
            <date>2010-03-30 09:34:06 -0700</date>
            <delta_ts>2010-03-30 09:34:06 -0700</delta_ts>
            <desc>backtrace</desc>
            <filename>crash.bt</filename>
            <type>application/octet-stream</type>
            <size>1403</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">IzAgIFFPYmplY3Q6OnRocmVhZCAodGhpcz0weGJmZTRlMDc4KSBhdCBrZXJuZWwvcW9iamVjdC5j
cHA6MTQxNAojMSAgMHhiNmI1ODgyZiBpbiBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNvbW1v
bkpTR2xvYmFsRGF0YSAoKSBhdCAuLi8uLi8uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHA6MTU1CiMyICAweGI2YjQwMTQ5IGluIGNvbGxlY3QgKCkgYXQgLi4vLi4vLi4v
V2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOjQ2CiMzICAweGI2YjQwMjI4IGlu
IFdlYkNvcmU6OkdDQ29udHJvbGxlcjo6Z2NUaW1lckZpcmVkICh0aGlzPTB4ODE5ZDg0OCkgYXQg
Li4vLi4vLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOjY5CiM0ICAweGI2
YjNmZDZkIGluIFdlYkNvcmU6OlRpbWVyPFdlYkNvcmU6OkdDQ29udHJvbGxlcj46OmZpcmVkICh0
aGlzPTB4ODE5ZDg0YykgYXQgLi4vLi4vLi4vV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oOjk4CiM1
ICAweGI3MTU2Y2M3IGluIFdlYkNvcmU6OlRocmVhZFRpbWVyczo6c2hhcmVkVGltZXJGaXJlZElu
dGVybmFsICh0aGlzPTB4ODE3OGM1OCkKICAgIGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0v
VGhyZWFkVGltZXJzLmNwcDoxMTIKIzYgIDB4YjcxNTZlZWIgaW4gV2ViQ29yZTo6VGhyZWFkVGlt
ZXJzOjpzaGFyZWRUaW1lckZpcmVkICgpIGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkVGltZXJzLmNwcDo5MAojNyAgMHhiNzMxYjhiNCBpbiB+U2hhcmVkVGltZXJRdCAodGhpcz0w
eDgxNTNhZjgpIGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5j
cHA6NjgKIzggIDB4YjQ4OGRlZmYgaW4gUU9iamVjdFByaXZhdGU6OmRlbGV0ZUNoaWxkcmVuICh0
aGlzPTB4ODEwZWRhMCkgYXQga2VybmVsL3FvYmplY3QuY3BwOjE5NzgKIzkgIDB4YjQ4OTUwOTkg
aW4gflFPYmplY3QgKHRoaXM9MHhiZmU0ZTMwOCkgYXQga2VybmVsL3FvYmplY3QuY3BwOjk3NQoj
MTAgMHhiNDg4MTFmYSBpbiB+UUNvcmVBcHBsaWNhdGlvbiAodGhpcz0weGJmZTRlMzA4KSBhdCBr
ZXJuZWwvcWNvcmVhcHBsaWNhdGlvbi5jcHA6NjIwCiMxMSAweGI0YWZhNDZjIGluIH5RQXBwbGlj
YXRpb24gKHRoaXM9MHhiZmU0ZTMwOCkgYXQga2VybmVsL3FhcHBsaWNhdGlvbi5jcHA6MTExNAoj
MTIgMHgwODA2ZDM5YyBpbiB+TGF1bmNoZXJBcHBsaWNhdGlvbiAodGhpcz0weGJmZTRlMzA4KSBh
dCAuLi8uLi8uLi8uLi9XZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwOjg5NgojMTMgMHgw
ODA2YzZkMCBpbiBtYWluIChhcmdjPTEsIGFyZ3Y9MHg4MTBlZTg4KSBhdCAuLi8uLi8uLi8uLi9X
ZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwOjEwNzE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52049</attachid>
            <date>2010-03-30 09:57:43 -0700</date>
            <delta_ts>2010-03-30 16:52:11 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>2609</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhMzliYWE4Li5iYmFhZWE2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMDMtMzAgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQXZvaWQg
Y3Jhc2hpbmcgaW4gZGVidWcgbW9kZSBqdXN0IGJlZm9yZSBleGl0LgorCisgICAgICAgIFRoZSBR
dCBpbXBsZW1lbnRhdGlvbiBvZiBpc01haW5UaHJlYWQoKSBpcyBjcmFzaGluZyB3aGVuIGRlc3Ry
dWN0aW9uIG9mIHRoZSBRQ29yZUFwcGxpY2F0b24gaGFzIGJlZW4gc3RhcnRlZC4KKyAgICAgICAg
VGhpcyBzaXR1YXRpb24gY2FuIGhhcHBlbiBvbiBmaW5hbCBjbGVhbnVwIChkZXN0cnVjdGlvbiBv
ZiBTaGFyZWRUaW1lcikgZnJvbSBwbGFjZXMgd2hlcmUgdGhlcmUgaXMgYW4gQVNTRVJUKGlzTWFp
blRocmVhZCgpKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzY4MzIKKworICAgICAgICAqIHd0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6CisgICAgICAg
IChXVEY6OkNvcmVBcHBsaWNhdGlvbkNoZWNrZXI6Omluc3RhbmNlKToKKyAgICAgICAgKFdURjo6
Q29yZUFwcGxpY2F0aW9uQ2hlY2tlcjo6YWJvdXRUb1F1aXQpOgorICAgICAgICBSZXR1cm5zIHdp
dGggdHJ1ZSBpZiB0aGUgUUNvcmVBcHBsaWNhdGlvbiBoYXMgZW1pdHRlZCB0aGUgYWJvdXRUb1F1
aXQgc2lnbmFsLgorICAgICAgICAoV1RGOjpDb3JlQXBwbGljYXRpb25DaGVja2VyOjpDb3JlQXBw
bGljYXRpb25DaGVja2VyKToKKyAgICAgICAgKFdURjo6Q29yZUFwcGxpY2F0aW9uQ2hlY2tlcjo6
YWJvdXRUb1F1aXRTbG90KToKKyAgICAgICAgTGlzdGVuaW5nIGZvciB0aGUgYWJvdXRUb1F1aXQg
c2lnbmFsLgorICAgICAgICAoV1RGOjppc01haW5UaHJlYWQpOgorCiAyMDEwLTAzLTIyICBKZWRy
emVqIE5vd2Fja2kgIDxqZWRyemVqLm5vd2Fja2lAbm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJl
YWRpbmdRdC5jcHAKaW5kZXggZGMwNGE2OC4uN2Y1NTk3ZCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvcXQv
VGhyZWFkaW5nUXQuY3BwCkBAIC0yMTUsOCArMjE1LDQ2IEBAIFRocmVhZElkZW50aWZpZXIgY3Vy
cmVudFRocmVhZCgpCiAgICAgcmV0dXJuIGVzdGFibGlzaElkZW50aWZpZXJGb3JUaHJlYWQoY3Vy
cmVudFRocmVhZCk7CiB9CiAKKy8vIFRoaXMgaXMgYSBoYWNrIHRvIGF2b2lkIGNyYXNoZXMgb24g
ZXhpdCB3aGVuIHRoZXJlIGlzIGEgY2hlY2sgZm9yIGlzTWFpblRocmVhZCgpLAorLy8gYnV0IHRo
ZSBRQ29yZUFwcGxpY2F0b24gaGFzIGJlZW4gYWxyZWFkeSByZWFjaGVkIGl0J3MgZGVzdHJ1Y3Rv
ciwgc28gd2UgY2Fubm90IGdldCBpdCdzIHRocmVhZCBpZC4KK2NsYXNzIENvcmVBcHBsaWNhdGlv
bkNoZWNrZXIgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBz
dGF0aWMgQ29yZUFwcGxpY2F0aW9uQ2hlY2tlciogaW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAg
c3RhdGljIENvcmVBcHBsaWNhdGlvbkNoZWNrZXIqIGluc3RhbmNlID0gbmV3IENvcmVBcHBsaWNh
dGlvbkNoZWNrZXIoKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KKworICAgIGJv
b2wgYWJvdXRUb1F1aXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYWJvdXRUb1F1aXQ7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIENvcmVBcHBsaWNhdGlvbkNoZWNrZXIoKQorICAgICAgICA6
IG1fYWJvdXRUb1F1aXQoZmFsc2UpCisgICAgeworICAgICAgICBjb25uZWN0KFFDb3JlQXBwbGlj
YXRpb246Omluc3RhbmNlKCksIFNJR05BTChhYm91dFRvUXVpdCgpKSwgdGhpcywgU0xPVChhYm91
dFRvUXVpdFNsb3QoKSkpOworICAgIH0KKworcHJpdmF0ZSBzbG90czoKKyAgICB2b2lkIGFib3V0
VG9RdWl0U2xvdCgpCisgICAgeworICAgICAgICBtX2Fib3V0VG9RdWl0ID0gdHJ1ZTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2Fib3V0VG9RdWl0OworfTsKKwogYm9vbCBpc01haW5U
aHJlYWQoKQogeworICAgIGlmIChDb3JlQXBwbGljYXRpb25DaGVja2VyOjppbnN0YW5jZSgpLT5h
Ym91dFRvUXVpdCgpKSB7CisgICAgICAgIC8vIFRoaXMgY2FzZSBjYW4gb25seSBoYXBwZW4gZHVy
aW5nIGZpbmFsIGRlc3RydWN0aW9uIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCiAgICAgcmV0dXJuIFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSA9PSBR
Q29yZUFwcGxpY2F0aW9uOjppbnN0YW5jZSgpLT50aHJlYWQoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52100</attachid>
            <date>2010-03-30 16:52:11 -0700</date>
            <delta_ts>2010-04-02 05:15:08 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>2090</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhMzliYWE4Li4yYjQ3M2VhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTAtMDMtMzAgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQXZvaWQg
Y3Jhc2hpbmcgaW4gZGVidWcgbW9kZSBqdXN0IGJlZm9yZSBleGl0LgorCisgICAgICAgIFRoZSBR
dCBpbXBsZW1lbnRhdGlvbiBvZiBpc01haW5UaHJlYWQoKSBpcyBjcmFzaGluZyB3aGVuIGRlc3Ry
dWN0aW9uIG9mIHRoZSBRQ29yZUFwcGxpY2F0b24gaGFzIGJlZW4gc3RhcnRlZC4KKyAgICAgICAg
VGhpcyBzaXR1YXRpb24gY2FuIGhhcHBlbiBvbiBmaW5hbCBjbGVhbnVwIChkZXN0cnVjdGlvbiBv
ZiBTaGFyZWRUaW1lcikgZnJvbSBwbGFjZXMgd2hlcmUgdGhlcmUgaXMgYW4gQVNTRVJUKGlzTWFp
blRocmVhZCgpKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzY4MzIKKworICAgICAgICAqIHd0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6CisgICAgICAg
IChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAoV1RGOjppc01haW5UaHJlYWQp
OiAKKyAgICAgICAgU3RvcmUgdGhlIFFUaHJlYWQqIG9mIHRoZSBtYWluIHRocmVhZCBpbiBhIGds
b2JhbCBzdGF0aWMgYW5kIHVzZSB0aGF0IGZvciBjb21wYXJpc29uLgorCiAyMDEwLTAzLTIyICBK
ZWRyemVqIE5vd2Fja2kgIDxqZWRyemVqLm5vd2Fja2lAbm9raWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9U
aHJlYWRpbmdRdC5jcHAKaW5kZXggZGMwNGE2OC4uZWE0NDdlYSAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYv
cXQvVGhyZWFkaW5nUXQuY3BwCkBAIC04Niw2ICs4Niw4IEBAIHN0YXRpYyBNdXRleCogYXRvbWlj
YWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXg7CiAKIHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1h
aW5UaHJlYWRJZGVudGlmaWVyOwogCitzdGF0aWMgUVRocmVhZCogbWFpblRocmVhZDsKKwogc3Rh
dGljIE11dGV4JiB0aHJlYWRNYXBNdXRleCgpCiB7CiAgICAgc3RhdGljIE11dGV4IG11dGV4OwpA
QCAtMTQ2LDcgKzE0OCw3IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgICAgIGF0
b21pY2FsbHlJbml0aWFsaXplZFN0YXRpY011dGV4ID0gbmV3IE11dGV4OwogICAgICAgICB0aHJl
YWRNYXBNdXRleCgpOwogICAgICAgICBpbml0aWFsaXplUmFuZG9tTnVtYmVyR2VuZXJhdG9yKCk7
Ci0gICAgICAgIFFUaHJlYWQqIG1haW5UaHJlYWQgPSBRQ29yZUFwcGxpY2F0aW9uOjppbnN0YW5j
ZSgpLT50aHJlYWQoKTsKKyAgICAgICAgbWFpblRocmVhZCA9IFFDb3JlQXBwbGljYXRpb246Omlu
c3RhbmNlKCktPnRocmVhZCgpOwogICAgICAgICBtYWluVGhyZWFkSWRlbnRpZmllciA9IGlkZW50
aWZpZXJCeVF0aHJlYWRIYW5kbGUobWFpblRocmVhZCk7CiAgICAgICAgIGlmICghbWFpblRocmVh
ZElkZW50aWZpZXIpCiAgICAgICAgICAgICBtYWluVGhyZWFkSWRlbnRpZmllciA9IGVzdGFibGlz
aElkZW50aWZpZXJGb3JUaHJlYWQobWFpblRocmVhZCk7CkBAIC0yMTcsNyArMjE5LDcgQEAgVGhy
ZWFkSWRlbnRpZmllciBjdXJyZW50VGhyZWFkKCkKIAogYm9vbCBpc01haW5UaHJlYWQoKQogewot
ICAgIHJldHVybiBRVGhyZWFkOjpjdXJyZW50VGhyZWFkKCkgPT0gUUNvcmVBcHBsaWNhdGlvbjo6
aW5zdGFuY2UoKS0+dGhyZWFkKCk7CisgICAgcmV0dXJuIFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQo
KSA9PSBtYWluVGhyZWFkOwogfQogCiBNdXRleDo6TXV0ZXgoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52408</attachid>
            <date>2010-04-02 05:15:08 -0700</date>
            <delta_ts>2010-04-19 07:38:36 -0700</delta_ts>
            <desc>proposed patch (hopefully final)</desc>
            <filename>static_mainthreadptr.diff</filename>
            <type>text/plain</type>
            <size>1547</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhMzliYWE4Li43YjQ2NTA4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTAtMDMtMzAgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQXZvaWQg
Y3Jhc2hpbmcgaW4gZGVidWcgbW9kZSBqdXN0IGJlZm9yZSBleGl0LgorCisgICAgICAgIFRoZSBR
dCBpbXBsZW1lbnRhdGlvbiBvZiBpc01haW5UaHJlYWQoKSBpcyBjcmFzaGluZyB3aGVuIGRlc3Ry
dWN0aW9uIG9mIHRoZSBRQ29yZUFwcGxpY2F0b24gaGFzIGJlZW4gc3RhcnRlZC4KKyAgICAgICAg
VGhpcyBzaXR1YXRpb24gY2FuIGhhcHBlbiBvbiBmaW5hbCBjbGVhbnVwIChkZXN0cnVjdGlvbiBv
ZiBTaGFyZWRUaW1lcikgZnJvbSBwbGFjZXMgd2hlcmUgdGhlcmUgaXMgYW4gQVNTRVJUKGlzTWFp
blRocmVhZCgpKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzY4MzIKKworICAgICAgICAqIHd0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6CisgICAgICAg
IChXVEY6OmlzTWFpblRocmVhZCk6IAorICAgICAgICBTdG9yZSB0aGUgUVRocmVhZCogb2YgdGhl
IG1haW4gdGhyZWFkIGluIGEgc3RhdGljIGFuZCB1c2UgdGhhdCBmb3IgY29tcGFyaXNvbi4KKwog
MjAxMC0wMy0yMiAgSmVkcnplaiBOb3dhY2tpICA8amVkcnplai5ub3dhY2tpQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHAgYi9KYXZhU2NyaXB0
Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwCmluZGV4IGRjMDRhNjguLmFjN2IwYTYgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcApAQCAtMjE3LDcgKzIxNyw5IEBAIFRocmVh
ZElkZW50aWZpZXIgY3VycmVudFRocmVhZCgpCiAKIGJvb2wgaXNNYWluVGhyZWFkKCkKIHsKLSAg
ICByZXR1cm4gUVRocmVhZDo6Y3VycmVudFRocmVhZCgpID09IFFDb3JlQXBwbGljYXRpb246Omlu
c3RhbmNlKCktPnRocmVhZCgpOworICAgIC8vIEdldCB0aGUgbWFpbiB0aHJlYWQgcG9pbnRlciBv
bmx5IG9uY2UgdG8gYmUgYWJsZSB0byBkbyB0aGlzIGNoZWNrIGV2ZW4gd2hlbiB0aGUgUUNvcmVB
cHBsaWNhdGlvbiBpcyBiZWluZyBkZXN0cnVjdGVkLgorICAgIHN0YXRpYyBRVGhyZWFkKiBtYWlu
VGhyZWFkID0gUUNvcmVBcHBsaWNhdGlvbjo6aW5zdGFuY2UoKS0+dGhyZWFkKCk7CisgICAgcmV0
dXJuIFFUaHJlYWQ6OmN1cnJlbnRUaHJlYWQoKSA9PSBtYWluVGhyZWFkOwogfQogCiBNdXRleDo6
TXV0ZXgoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53678</attachid>
            <date>2010-04-19 07:38:36 -0700</date>
            <delta_ts>2010-04-19 11:01:06 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>sharedtimer.with_ch.diff</filename>
            <type>text/plain</type>
            <size>2551</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE5ZDA1NS4uMGZmZDE4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNC0xOSAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBEZXN0cm95IFNoYXJlZFRpbWVyUXQgYmVmb3JlIGRlc3Ry
dWN0aW9uIG9mIFFDb3JlQXBwbGljYXRpb24uCisKKyAgICAgICAgVG8gYXZvaWQgdW5zYWZlIHNp
dHVhdGlvbnMgY2F1c2VkIGJ5IHJ1bm5pbmcgV2ViQ29yZSBjb2RlICh0aHJvdWdoIGZpcmluZyB0
aW1lcnMpIHdoZW4gZGVzdHJ1Y3Rpb24gb2YgUUNvcmVBcHBsaWNhdGlvbgorICAgICAgICBoYXMg
YmVlbiBzdGFydGVkLCB3ZSBzaG91bGQgZXhwbGljaXRseSBkZXN0cm95IHRoZSBTaGFyZWRUaW1l
clF0IGluc3RhbmNlIG9uIGFwcGxpY2F0aW9uIGV4aXQuCisgICAgICAgIFdlIGNhbiBhY2hpZXZl
IHRoYXQgdGhyb3VnaCBpbnN0YWxsaW5nIGEgc2VsZi1kZXN0cm95aW5nIHNsb3QgZm9yIHRoZSBR
Q29yZUFwcGxpY2F0aW9uOjphYm91dFRvUXVpdCgpIHNpZ25hbAorICAgICAgICBpbnRvIHRoZSBT
aGFyZWRUaW1lclF0IGluc3RhbmNlLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNjgzMgorCisgICAgICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlIHNv
IG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkVGltZXJRdDo6U2hhcmVkVGltZXJRdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lclF0OjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYXJlZFRpbWVyUXQ6Omluc3QpOgorCiAyMDEwLTA0LTE3ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcAppbmRleCBlOWJjYWVlLi43YzBmZDA1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5jcHAKQEAgLTQwLDYgKzQwLDggQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2hhcmVkVGltZXJRdCA6IHB1YmxpYyBRT2JqZWN0IHsK
KyAgICBRX09CSkVDVAorCiAgICAgZnJpZW5kIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0
aW9uKHZvaWQgKCpmKSgpKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgU2hhcmVkVGltZXJRdCogaW5z
dCgpOwpAQCAtNTAsMTUgKzUyLDE4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2b2lkIHRp
bWVyRXZlbnQoUVRpbWVyRXZlbnQqIGV2KTsKIAorcHJpdmF0ZSBzbG90czoKKyAgICB2b2lkIGRl
c3Ryb3koKTsKKwogcHJpdmF0ZToKLSAgICBTaGFyZWRUaW1lclF0KFFPYmplY3QqIHBhcmVudCk7
CisgICAgU2hhcmVkVGltZXJRdCgpOwogICAgIH5TaGFyZWRUaW1lclF0KCk7CiAgICAgUUJhc2lj
VGltZXIgbV90aW1lcjsKICAgICB2b2lkICgqbV90aW1lckZ1bmN0aW9uKSgpOwogfTsKIAotU2hh
cmVkVGltZXJRdDo6U2hhcmVkVGltZXJRdChRT2JqZWN0KiBwYXJlbnQpCi0gICAgOiBRT2JqZWN0
KHBhcmVudCkKK1NoYXJlZFRpbWVyUXQ6OlNoYXJlZFRpbWVyUXQoKQorICAgIDogUU9iamVjdCgp
CiAgICAgLCBtX3RpbWVyRnVuY3Rpb24oMCkKIHt9CiAKQEAgLTY4LDExICs3MywxOCBAQCBTaGFy
ZWRUaW1lclF0Ojp+U2hhcmVkVGltZXJRdCgpCiAgICAgICAgIChtX3RpbWVyRnVuY3Rpb24pKCk7
CiB9CiAKK3ZvaWQgU2hhcmVkVGltZXJRdDo6ZGVzdHJveSgpCit7CisgICAgZGVsZXRlIHRoaXM7
Cit9CisKIFNoYXJlZFRpbWVyUXQqIFNoYXJlZFRpbWVyUXQ6Omluc3QoKQogewogICAgIHN0YXRp
YyBRUG9pbnRlcjxTaGFyZWRUaW1lclF0PiB0aW1lcjsKLSAgICBpZiAoIXRpbWVyKQotICAgICAg
ICB0aW1lciA9IG5ldyBTaGFyZWRUaW1lclF0KFFDb3JlQXBwbGljYXRpb246Omluc3RhbmNlKCkp
OworICAgIGlmICghdGltZXIpIHsKKyAgICAgICAgdGltZXIgPSBuZXcgU2hhcmVkVGltZXJRdCgp
OworICAgICAgICB0aW1lci0+Y29ubmVjdChRQ29yZUFwcGxpY2F0aW9uOjppbnN0YW5jZSgpLCBT
SUdOQUwoYWJvdXRUb1F1aXQoKSksIFNMT1QoZGVzdHJveSgpKSk7CisgICAgfQogCiAgICAgcmV0
dXJuIHRpbWVyOwogfQpAQCAtMTI5LDYgKzE0MSw4IEBAIHZvaWQgc3RvcFNoYXJlZFRpbWVyKCkK
ICAgICBTaGFyZWRUaW1lclF0OjppbnN0KCktPnN0b3AoKTsKIH0KIAorI2luY2x1ZGUgIlNoYXJl
ZFRpbWVyUXQubW9jIgorCiB9CiAKIC8vIHZpbTogdHM9NCBzdz00IGV0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>