<?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>46935</bug_id>
          
          <creation_ts>2010-09-30 14:06:31 -0700</creation_ts>
          <short_desc>WebCore uses the main thread to process sleep notifications</short_desc>
          <delta_ts>2010-09-30 15:02:07 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287804</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-30 14:06:31 -0700</bug_when>
    <thetext>WebCore uses the main thread to process sleep notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287809</commentid>
    <comment_count>1</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-30 14:09:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/8495374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287822</commentid>
    <comment_count>2</comment_count>
      <attachid>69383</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-30 14:23:02 -0700</bug_when>
    <thetext>Created attachment 69383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287840</commentid>
    <comment_count>3</comment_count>
      <attachid>69383</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-30 14:39:17 -0700</bug_when>
    <thetext>Comment on attachment 69383
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=69383&amp;action=review

&gt; WebCore/platform/mac/SharedTimerMac.mm:40
&gt; +#define IOKIT_CAN_USE_LIBDISPATCH 1

I’d like this to be reversed. Maybe IOKIT_WITHOUT_LIBDISPATCH?

&gt; WebCore/platform/mac/SharedTimerMac.mm:67
&gt; +    static void systemPowerCallback(void* context, io_service_t service, uint32_t messageType, void* messageArgument);
&gt; +    void systemPowerCallback(io_service_t service, uint32_t messageType, void* messageArgument);

The argument name service could be left out in these two function declarations.

&gt; WebCore/platform/mac/SharedTimerMac.mm:143
&gt; +#ifdef IOKIT_CAN_USE_LIBDISPATCH
&gt; +    // We need to call the timer functions on the main thread.
&gt; +    CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, ^() {
&gt; +#endif
&gt;  
&gt; -    if (WebCore::sharedTimer) {
&gt; -        WebCore::stopSharedTimer();
&gt; -        WebCore::timerFired(0, 0);
&gt; +    if (sharedTimer) {
&gt; +        stopSharedTimer();
&gt; +        timerFired(0, 0);
&gt;      }
&gt; +    
&gt; +#ifdef IOKIT_CAN_USE_LIBDISPATCH
&gt; +    });
&gt; +#endif
&gt;  }

You could do this more cleanly if the body here was a member function. Then you could call it in the block and in the #else and not feel the need to use #if in this fancier way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287842</commentid>
    <comment_count>4</comment_count>
      <attachid>69383</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-30 14:40:47 -0700</bug_when>
    <thetext>Comment on attachment 69383
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=69383&amp;action=review

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:20875
&gt; +			developmentRegion = English;

Please don’t commit this.

&gt; WebCore/platform/mac/SharedTimerMac.mm:30
&gt; +#import &lt;IOKit/pwr_mgt/IOPMLib.h&gt;
&gt; +#import &lt;IOKit/IOMessage.h&gt;

I comes before p.

&gt; WebCore/platform/mac/SharedTimerMac.mm:67
&gt; +    void systemPowerCallback(io_service_t service, uint32_t messageType, void* messageArgument);

This is not a great name for this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287870</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-30 15:02:07 -0700</bug_when>
    <thetext>Committed r68836: &lt;http://trac.webkit.org/changeset/68836&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69383</attachid>
            <date>2010-09-30 14:23:02 -0700</date>
            <delta_ts>2010-09-30 14:40:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46935-20100930142301.patch</filename>
            <type>text/plain</type>
            <size>10823</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODQ3YzRjZTMzMmRmYTE3ZGRlYjg1ODM3ZWYzMjY1YzI3MTEzYTIyZS4uZDUzYzI3YmE5N2QxNmY5
NDJlOTNlNmU4M2MxNmE5NDk4NjAxZGJjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOS0zMCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNvcmUgdXNlcyB0aGUgbWFpbiB0aHJlYWQg
dG8gcHJvY2VzcyBzbGVlcCBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkzNQorCisgICAgICAgIFJld3JpdGUgdGhlIG9sZCBX
ZWJDb3JlUG93ZXJOb3RpZmllciB0byB1c2UgSU9LaXQgZGlyZWN0bHkuIAorICAgICAgICAKKyAg
ICAgICAgT24gU25vdyBMZW9wYXJkLCBzZXQgdXAgcG93ZXIgbm90aWZpY2F0aW9ucyB0byBhcnJp
dmUgb24gYSBkaXNwYXRjaCBxdWV1ZSwKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gaGFuZGxlIHRo
ZW0gcXVpY2tseSBldmVuIGlmIHRoZSBtYWluIHRocmVhZCBpcyBodW5nLgorCisgICAgICAgIChU
aWdlciBhbmQgTGVvcGFyZCB3aWxsIHN0aWxsIGdldCB0aGUgb2xkIGJlaGF2aW9yKS4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgTGluayB3
aXRoIElPS2l0LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UG93ZXJOb3RpZmllcjo6UG93ZXJOb3RpZmllcik6CisgICAgICAg
IEluaXRpYWxpemUgdGhlIElPS2l0IG1hY2hpbmVyeS4KKworICAgICAgICAoV2ViQ29yZTo6UG93
ZXJOb3RpZmllcjo6flBvd2VyTm90aWZpZXIpOgorICAgICAgICBUZWFyIGRvd24gdGhlIElPS2l0
IG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyTm90aWZpZXI6OnN5c3Rl
bVBvd2VyQ2FsbGJhY2spOgorICAgICAgICBBY2tub3dsZWRnZSB0aGUgZXZlbnQgaW1tZWRpYXRl
bHkgYW5kIHRoZW4gY2FsbCB0aGUgc2hhcmVkIHRpbWVyIGZ1bmN0aW9ucy4gT24gU25vdyBMZW9w
YXJkLCB3ZQorICAgICAgICBtYWtlIHN1cmUgdG8gY2FsbCB0aGUgc2hhcmVkIHRpbWVyIGZ1bmN0
aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgCiAyMDEwLTA5LTI5ICBKZXJlbXkgT3Jsb3cg
IDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2Nr
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzRjNTJh
YzRhN2VjYWQ1NDVkMGU2MGY5YmZiMWRhMGFjY2VjOGEyLi40MDc2ZjVjNDVhNTgwYjAxYjc3OTgy
MTk5YTk3OWIxNjA1MmJmNTdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDY3LDYgKzQ2Nyw3IEBACiAJCTFBQTg3OTkwMTFDQkU4NDYwMDNDNjY0RiAv
KiBQbHVnaW5TdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFBODc5OEYxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFCMUFFN0Ew
QzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjFBRTc4MEMwNTFGREUwMDEzOUY0RiAvKiB6
b29tSW5DdXJzb3IucG5nICovOyB9OwogCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9v
bU91dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBQjFBRTc5MEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0Q3Vyc29yLnBuZyAqLzsg
fTsKKwkJMUFCMzNEQTUxMjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjMzREE0MTI1NTFF
MzIwMDI0NDU3QSAvKiBJT0tpdC5mcmFtZXdvcmsgKi87IH07CiAJCTFBQjdGQzY4MEE4QjkyRUMw
MEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM0NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFs
dWF0b3IuY3BwICovOyB9OwogCQkxQUI3RkM2OTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFs
dWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
QjdGQzQ4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5oICovOyB9OwogCQkxQUI3
RkM2QjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFeHByZXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzRBMEE4QjkyRUMwMEQ5RDM3
QiAvKiBYUGF0aEV4cHJlc3Npb24uY3BwICovOyB9OwpAQCAtNjM5NSw2ICs2Mzk2LDcgQEAKIAkJ
MUFBODc5OEYxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQjFBRTc4MEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5n
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2Uu
cG5nOyBwYXRoID0gem9vbUluQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUFCMUFFNzkwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3IucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gem9vbU91dEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQjMz
REE0MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0
LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMUFCN0ZDNDcwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYUGF0aEV2YWx1YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBQjdGQzQ4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhFdmFsdWF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCN0ZDNDkwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRo
RXZhbHVhdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFBhdGhFdmFsdWF0b3IuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0OTQsNiArMTE0OTYsNyBAQAogCQkJ
CTQ5QzdCQTc5MTA0MkVGQUUwMDA5RDQ0NyAvKiBPcGVuR0wuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8sCiAJCQkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUE3RkE3Q0MwRERBNEI3NzAwMjhGOEE1IC8qIFN5
c3RlbUNvbmZpZ3VyYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJMUFCMzNE
QTUxMjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMTE1NTcsNiArMTE1NjAsNyBAQAogCQkJCUY1QzI4NjkzMDI4NDZEQ0QwMTg2MzVDQSAvKiBB
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayAqLywKIAkJCQlGNUMyODY5NDAyODQ2RENEMDE4
NjM1Q0EgLyogQ2FyYm9uLmZyYW1ld29yayAqLywKIAkJCQlGNUMyODY5NTAyODQ2RENEMDE4NjM1
Q0EgLyogQ29jb2EuZnJhbWV3b3JrICovLAorCQkJCTFBQjMzREE0MTI1NTFFMzIwMDI0NDU3QSAv
KiBJT0tpdC5mcmFtZXdvcmsgKi8sCiAJCQkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLywKIAkJCQk5M0YxRDMxQTA1NThDQzVDMDA4MjFCQzAg
LyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyog
bGlib2JqYy5keWxpYiAqLywKQEAgLTIwODY4LDYgKzIwODcyLDcgQEAKIAkJCWlzYSA9IFBCWFBy
b2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5
RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIg
Ki87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOworCQkJZGV2ZWxvcG1l
bnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlr
bm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGlt
ZXJNYWMubW0KaW5kZXggYjllYWFlZmY5OWU5YzRiOTM0NzU2NjFjNjU3ZWY3Zjk2MWU2YjlhZS4u
YmFhZDY1ZTMzMjRkMzI3MDJiZjEwZTZkYjVhZTA5Y2FhN2MyZjc1MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2hhcmVkVGltZXJNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDUxICsyNiwxMjMgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiU2hhcmVkVGltZXIuaCIKIAorI2ltcG9ydCA8SU9LaXQvcHdyX21ndC9J
T1BNTGliLmg+CisjaW1wb3J0IDxJT0tpdC9JT01lc3NhZ2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW1wb3J0IDx3dGYvTm9uY29weWFibGUuaD4KKyNpbXBvcnQgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW1wb3J0IDx3dGYvVW51c2VkUGFyYW0uaD4KIAotQGNsYXNzIFdlYkNvcmVQ
b3dlck5vdGlmaWVyOworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKy8vIE9uIFNub3cgTGVvcGFyZCBh
bmQgbmV3ZXIgd2UnbGwgYXNrIElPS2l0IHRvIGRlbGl2ZXIgbm90aWZpY2F0aW9ucyBvbiBhIHF1
ZXVlLgorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQorI2RlZmluZSBJT0tJVF9DQU5fVVNFX0xJQkRJU1BBVENIIDEKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBXZWJDb3JlUG93ZXJOb3RpZmllciAq
cG93ZXJOb3RpZmllcjsKIHN0YXRpYyBDRlJ1bkxvb3BUaW1lclJlZiBzaGFyZWRUaW1lcjsKIHN0
YXRpYyB2b2lkICgqc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwogc3RhdGljIHZvaWQgdGlt
ZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwogCi19CisjaWYgZGVmaW5lZChJT0tJ
VF9DQU5fVVNFX0xJQkRJU1BBVENIKSAmJiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKK2V4dGVybiAiQyIgdm9pZCBJT05vdGlmaWNhdGlvblBvcnRTZXREaXNwYXRjaFF1ZXVlKElP
Tm90aWZpY2F0aW9uUG9ydFJlZiBub3RpZnksIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUpOworI2Vu
ZGlmCiAKLUBpbnRlcmZhY2UgV2ViQ29yZVBvd2VyTm90aWZpZXIgOiBOU09iamVjdAotQGVuZAor
Y2xhc3MgUG93ZXJOb3RpZmllciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUG93ZXJOb3Rp
Zmllcik7CisgICAgCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UG93ZXJOb3RpZmll
cj4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUG93ZXJOb3Rp
Zmllcik7CisgICAgfQorICAgIH5Qb3dlck5vdGlmaWVyKCk7CisKK3ByaXZhdGU6CisgICAgUG93
ZXJOb3RpZmllcigpOworCisgICAgc3RhdGljIHZvaWQgc3lzdGVtUG93ZXJDYWxsYmFjayh2b2lk
KiBjb250ZXh0LCBpb19zZXJ2aWNlX3Qgc2VydmljZSwgdWludDMyX3QgbWVzc2FnZVR5cGUsIHZv
aWQqIG1lc3NhZ2VBcmd1bWVudCk7CisgICAgdm9pZCBzeXN0ZW1Qb3dlckNhbGxiYWNrKGlvX3Nl
cnZpY2VfdCBzZXJ2aWNlLCB1aW50MzJfdCBtZXNzYWdlVHlwZSwgdm9pZCogbWVzc2FnZUFyZ3Vt
ZW50KTsKKworICAgIGlvX2Nvbm5lY3RfdCBtX3Bvd2VyQ29ubmVjdGlvbjsKKyAgICBJT05vdGlm
aWNhdGlvblBvcnRSZWYgbV9ub3RpZmljYXRpb25Qb3J0OworICAgIGlvX29iamVjdF90IG1fbm90
aWZpZXJSZWZlcmVuY2U7CisjaWZkZWYgSU9LSVRfQ0FOX1VTRV9MSUJESVNQQVRDSAorICAgIGRp
c3BhdGNoX3F1ZXVlX3QgbV9kaXNwYXRjaFF1ZXVlOworI2Vsc2UKKyAgICBDRlJ1bkxvb3BTb3Vy
Y2VSZWYgbV9ydW5Mb29wU291cmNlOworI2VuZGlmCit9OworCitQb3dlck5vdGlmaWVyOjpQb3dl
ck5vdGlmaWVyKCkKKyAgICA6IG1fcG93ZXJDb25uZWN0aW9uKDApCisgICAgLCBtX25vdGlmaWNh
dGlvblBvcnQoMCkKKyAgICAsIG1fbm90aWZpZXJSZWZlcmVuY2UoMCkKKyNpZmRlZiBJT0tJVF9D
QU5fVVNFX0xJQkRJU1BBVENICisgICAgLCBtX2Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hfcXVldWVf
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlBvd2VyTm90aWZpZXIiLCAwKSkKKyNlbHNlCisgICAg
LCBtX3J1bkxvb3BTb3VyY2UoMCkKKyNlbmRpZgoreworICAgIG1fcG93ZXJDb25uZWN0aW9uID0g
SU9SZWdpc3RlckZvclN5c3RlbVBvd2VyKHRoaXMsICZtX25vdGlmaWNhdGlvblBvcnQsIHN5c3Rl
bVBvd2VyQ2FsbGJhY2ssICZtX25vdGlmaWVyUmVmZXJlbmNlKTsKKyAgICBpZiAoIW1fcG93ZXJD
b25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyNpZmRlZiBJT0tJVF9DQU5fVVNFX0xJQkRJ
U1BBVENICisgICAgSU9Ob3RpZmljYXRpb25Qb3J0U2V0RGlzcGF0Y2hRdWV1ZShtX25vdGlmaWNh
dGlvblBvcnQsIG1fZGlzcGF0Y2hRdWV1ZSk7CisjZWxzZQorICAgIG1fcnVuTG9vcFNvdXJjZSA9
IElPTm90aWZpY2F0aW9uUG9ydEdldFJ1bkxvb3BTb3VyY2UobV9ub3RpZmljYXRpb25Qb3J0KTsK
KyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0TWFpbigpLCBtX3J1bkxvb3BTb3Vy
Y2UsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisjZW5kaWYKK30KIAotQGltcGxlbWVudGF0aW9u
IFdlYkNvcmVQb3dlck5vdGlmaWVyCitQb3dlck5vdGlmaWVyOjp+UG93ZXJOb3RpZmllcigpCit7
CisgICAgaWYgKCFtX3Bvd2VyQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYg
SU9LSVRfQ0FOX1VTRV9MSUJESVNQQVRDSAorICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRj
aFF1ZXVlKTsKKyNlbHNlCisgICAgQ0ZSdW5Mb29wUmVtb3ZlU291cmNlKENGUnVuTG9vcEdldE1h
aW4oKSwgbV9ydW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworI2VuZGlmCisK
KyAgICBJT0RlcmVnaXN0ZXJGb3JTeXN0ZW1Qb3dlcigmbV9ub3RpZmllclJlZmVyZW5jZSk7Cisg
ICAgSU9TZXJ2aWNlQ2xvc2UobV9wb3dlckNvbm5lY3Rpb24pOworICAgIElPTm90aWZpY2F0aW9u
UG9ydERlc3Ryb3kobV9ub3RpZmljYXRpb25Qb3J0KTsKK30KIAotLSAoaWQpaW5pdAordm9pZCBQ
b3dlck5vdGlmaWVyOjpzeXN0ZW1Qb3dlckNhbGxiYWNrKHZvaWQqIGNvbnRleHQsIGlvX3NlcnZp
Y2VfdCBzZXJ2aWNlLCB1aW50MzJfdCBtZXNzYWdlVHlwZSwgdm9pZCogbWVzc2FnZUFyZ3VtZW50
KQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgCi0gICAgaWYgKHNlbGYpCi0gICAg
ICAgIFtbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvcjpAc2VsZWN0b3IoZGlkV2FrZTopCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTpOU1dvcmtzcGFjZURpZFdha2VOb3RpZmljYXRpb24gCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVj
dDpuaWxdOwotICAgIAotICAgIHJldHVybiBzZWxmOworICAgIHN0YXRpY19jYXN0PFBvd2VyTm90
aWZpZXIqPihjb250ZXh0KS0+c3lzdGVtUG93ZXJDYWxsYmFjayhzZXJ2aWNlLCBtZXNzYWdlVHlw
ZSwgbWVzc2FnZUFyZ3VtZW50KTsKIH0KIAotLSAodm9pZClkaWRXYWtlOihOU05vdGlmaWNhdGlv
biAqKXVudXNlZE5vdGlmaWNhdGlvbgordm9pZCBQb3dlck5vdGlmaWVyOjpzeXN0ZW1Qb3dlckNh
bGxiYWNrKGlvX3NlcnZpY2VfdCwgdWludDMyX3QgbWVzc2FnZVR5cGUsIHZvaWQqIG1lc3NhZ2VB
cmd1bWVudCkKIHsKLSAgICBVTlVTRURfUEFSQU0odW51c2VkTm90aWZpY2F0aW9uKTsKKyAgICBJ
T0FsbG93UG93ZXJDaGFuZ2UobV9wb3dlckNvbm5lY3Rpb24sIHJlaW50ZXJwcmV0X2Nhc3Q8bG9u
Zz4obWVzc2FnZUFyZ3VtZW50KSk7CisKKyAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlICJ3
YWtlIGZyb20gc2xlZXAiIG1lc3NhZ2UuCisgICAgaWYgKG1lc3NhZ2VUeXBlICE9IGtJT01lc3Nh
Z2VTeXN0ZW1XaWxsUG93ZXJPbikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgSU9LSVRfQ0FO
X1VTRV9MSUJESVNQQVRDSAorICAgIC8vIFdlIG5lZWQgdG8gY2FsbCB0aGUgdGltZXIgZnVuY3Rp
b25zIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5M
b29wR2V0TWFpbigpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMsIF4oKSB7CisjZW5kaWYKIAotICAg
IGlmIChXZWJDb3JlOjpzaGFyZWRUaW1lcikgewotICAgICAgICBXZWJDb3JlOjpzdG9wU2hhcmVk
VGltZXIoKTsKLSAgICAgICAgV2ViQ29yZTo6dGltZXJGaXJlZCgwLCAwKTsKKyAgICBpZiAoc2hh
cmVkVGltZXIpIHsKKyAgICAgICAgc3RvcFNoYXJlZFRpbWVyKCk7CisgICAgICAgIHRpbWVyRmly
ZWQoMCwgMCk7CiAgICAgfQorICAgIAorI2lmZGVmIElPS0lUX0NBTl9VU0VfTElCRElTUEFUQ0gK
KyAgICB9KTsKKyNlbmRpZgogfQogCi1AZW5kCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKK3N0YXRp
YyBQb3dlck5vdGlmaWVyKiBwb3dlck5vdGlmaWVyOwogCiB2b2lkIHNldFNoYXJlZFRpbWVyRmly
ZWRGdW5jdGlvbih2b2lkICgqZikoKSkKIHsKQEAgLTEwMCwxMSArMTcyLDggQEAgdm9pZCBzZXRT
aGFyZWRUaW1lckZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkKICAgICBzaGFyZWRUaW1lciA9IENG
UnVuTG9vcFRpbWVyQ3JlYXRlKDAsIGZpcmVEYXRlLCAwLCAwLCAwLCB0aW1lckZpcmVkLCAwKTsK
ICAgICBDRlJ1bkxvb3BBZGRUaW1lcihDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHNoYXJlZFRpbWVy
LCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwogICAgIAotICAgIGlmICghcG93ZXJOb3RpZmllcikg
ewotICAgICAgICBwb3dlck5vdGlmaWVyID0gW1tXZWJDb3JlUG93ZXJOb3RpZmllciBhbGxvY10g
aW5pdF07Ci0gICAgICAgIENGUmV0YWluKHBvd2VyTm90aWZpZXIpOwotICAgICAgICBbcG93ZXJO
b3RpZmllciByZWxlYXNlXTsKLSAgICB9CisgICAgaWYgKCFwb3dlck5vdGlmaWVyKQorICAgICAg
ICBwb3dlck5vdGlmaWVyID0gUG93ZXJOb3RpZmllcjo6Y3JlYXRlKCkubGVha1B0cigpOwogfQog
CiB2b2lkIHN0b3BTaGFyZWRUaW1lcigpCkBAIC0xMTYsNCArMTg1LDQgQEAgdm9pZCBzdG9wU2hh
cmVkVGltZXIoKQogICAgIH0KIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="59070"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>