<?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>220110</bug_id>
          
          <creation_ts>2020-12-22 19:09:58 -0800</creation_ts>
          <short_desc>Add a helper method to WTF::MachSemaphore to wait with a timeout duration</short_desc>
          <delta_ts>2021-01-02 16:56:17 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>219586</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1716422</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-22 19:09:58 -0800</bug_when>
    <thetext>Namely, the ability to broadcast (semaphore_signal_all), and the ability to wait for a limited amount of time before giving up (semaphore_timedwait)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716524</commentid>
    <comment_count>1</comment_count>
      <attachid>416730</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-23 16:30:21 -0800</bug_when>
    <thetext>Created attachment 416730
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716737</commentid>
    <comment_count>2</comment_count>
      <attachid>416823</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-27 11:20:08 -0800</bug_when>
    <thetext>Created attachment 416823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716739</commentid>
    <comment_count>3</comment_count>
      <attachid>416823</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-12-27 13:08:39 -0800</bug_when>
    <thetext>Comment on attachment 416823
Patch

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

&gt; Source/WTF/wtf/cocoa/MachSemaphore.cpp:62
&gt; +void MachSemaphore::waitWithTimeout(Seconds timeout)

We call this waitFor() in WTF::Semaphore and WTF::BinarySemaphore, perhaps we should keep the names the same?

&gt; Source/WTF/wtf/cocoa/MachSemaphore.cpp:64
&gt; +    auto seconds = static_cast&lt;unsigned&gt;(timeout.seconds());

I think you can use timeout.secondsAs&lt;unsigned&gt;() here and below instead of explicitly casting yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716741</commentid>
    <comment_count>4</comment_count>
      <attachid>416823</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-27 13:18:12 -0800</bug_when>
    <thetext>Comment on attachment 416823
Patch

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

&gt;&gt; Source/WTF/wtf/cocoa/MachSemaphore.cpp:62
&gt;&gt; +void MachSemaphore::waitWithTimeout(Seconds timeout)
&gt; 
&gt; We call this waitFor() in WTF::Semaphore and WTF::BinarySemaphore, perhaps we should keep the names the same?

Sounds good — changed to waitFor().

&gt;&gt; Source/WTF/wtf/cocoa/MachSemaphore.cpp:64
&gt;&gt; +    auto seconds = static_cast&lt;unsigned&gt;(timeout.seconds());
&gt; 
&gt; I think you can use timeout.secondsAs&lt;unsigned&gt;() here and below instead of explicitly casting yourself.

timeout.secondsAs&lt;unsigned&gt;() ought to work. However, timeout.nanosecondsAs&lt;unsigned&gt;() won&apos;t work for anything above a few seconds. I can use timeout.nanosecondsAs&lt;int64_t&gt;() and then subtract against the number of nanoseconds, but I&apos;ll still need a static cast to clock_res_t around the result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716742</commentid>
    <comment_count>5</comment_count>
      <attachid>416825</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-27 13:22:20 -0800</bug_when>
    <thetext>Created attachment 416825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716757</commentid>
    <comment_count>6</comment_count>
      <attachid>416825</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-27 22:41:30 -0800</bug_when>
    <thetext>Comment on attachment 416825
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716758</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-27 22:45:19 -0800</bug_when>
    <thetext>Committed r271101: &lt;https://trac.webkit.org/changeset/271101&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416825.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716759</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-27 22:46:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/72697931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717024</commentid>
    <comment_count>9</comment_count>
      <attachid>416825</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-02 16:56:17 -0800</bug_when>
    <thetext>Comment on attachment 416825
Patch

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

&gt; Source/WTF/wtf/cocoa/MachSemaphore.cpp:65
&gt; +    auto seconds = timeout.secondsAs&lt;unsigned&gt;();
&gt; +    semaphore_timedwait(m_semaphore, { seconds, static_cast&lt;clock_res_t&gt;(timeout.nanosecondsAs&lt;uint64_t&gt;() - seconds * NSEC_PER_SEC) });

Seems like the &quot;convert Seconds to a mach_timespec_t&quot; should be a separate function; could be useful elsewhere and a good separate concept. Simpler but related to MonotonicTime::fromMachAbsoluteTime.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416730</attachid>
            <date>2020-12-23 16:30:21 -0800</date>
            <delta_ts>2020-12-27 11:20:05 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-220110-20201223163020.patch</filename>
            <type>text/plain</type>
            <size>2801</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2NGE4OGE5ZTE1YjJlZmVhODcyOGJj
NTMxZTNkYmY0ODkzMzRhNTAuLjYxNTBiYzViZmRlMDAxOGQwZTA4MzJkYWU4YzJkYmI1MmQyY2I1
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMTItMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBXVEY6
Ok1hY2hTZW1hcGhvcmUgdG8gd2FpdCB3aXRoIGEgdGltZW91dCBkdXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBuZXcgaGVscGVyIG1l
dGhvZHMgb24gdGhlIGNyb3NzLXByb2Nlc3MgV1RGOjpNYWNoU2VtYXBob3JlIGNsYXNzICh0byBi
ZSB1dGlsaXplZCBpbiB3ZWJraXQub3JnL2IvMjE5NTg2KS4KKworICAgICAgICAqIHd0Zi9jb2Nv
YS9NYWNoU2VtYXBob3JlLmNwcDoKKyAgICAgICAgKFdURjo6TWFjaFNlbWFwaG9yZTo6c2lnbmFs
VGhyZWFkKToKKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBgc2VtYXBob3JlX3NpZ25h
bF90aHJlYWRgLgorCisgICAgICAgIChXVEY6Ok1hY2hTZW1hcGhvcmU6OndhaXRXaXRoVGltZW91
dCk6CisKKyAgICAgICAgVGhpcyB3cmFwcyBhIGNhbGwgdG8gYHNlbWFwaG9yZV90aW1lZHdhaXRg
LCBhbmQgY29udmVydHMgdGhlIGdpdmVuIHRpbWUgKGluIFdURjo6U2Vjb25kcykgaW50byBhCisg
ICAgICAgIGBtYWNoX3RpbWVzcGVjX3RgLCB3aGljaCBpcyBhbiB1bnNpZ25lZCByZXByZXNlbnRp
bmcgdGhlIG51bWJlciBvZiBzZWNvbmRzLCBhbG9uZyB3aXRoIGFub3RoZXIgdW5zaWduZWQKKyAg
ICAgICAgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgbmFub3NlY29uZHMuCisKKyAgICAgICAg
KiB3dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5oOgorCiAyMDIwLTEyLTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzA5
NjkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1hcGhvcmUuY3BwCmluZGV4IDc1ODk5ZjU2MjQy
NTViNDExYTVkMWUwYTFjZDBmZTE5Yzk0ZTU2ZjEuLmJjZjYzZDI4NzBiYjc2NTUyYWI3NzljY2Fm
ZDM2NGE1ZDE4YTBlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1h
cGhvcmUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1hcGhvcmUuY3BwCkBA
IC01NCw2ICs1NCwxOCBAQCB2b2lkIE1hY2hTZW1hcGhvcmU6OnNpZ25hbCgpCiAgICAgc2VtYXBo
b3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CiB9CiAKK3ZvaWQgTWFjaFNlbWFwaG9yZTo6c2lnbmFs
VGhyZWFkKHRocmVhZF90IHRocmVhZCkKK3sKKyAgICBzZW1hcGhvcmVfc2lnbmFsX3RocmVhZCht
X3NlbWFwaG9yZSwgdGhyZWFkKTsKK30KKwordm9pZCBNYWNoU2VtYXBob3JlOjp3YWl0V2l0aFRp
bWVvdXQoU2Vjb25kcyB0aW1lb3V0KQoreworICAgIGF1dG8gc2Vjb25kcyA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPih0aW1lb3V0LnNlY29uZHMoKSk7CisgICAgYXV0byBuYW5vc2Vjb25kcyA9IHN0
YXRpY19jYXN0PGNsb2NrX3Jlc190Pih0aW1lb3V0Lm5hbm9zZWNvbmRzKCkgLSBzZWNvbmRzICog
TlNFQ19QRVJfU0VDKTsKKyAgICBzZW1hcGhvcmVfdGltZWR3YWl0KG1fc2VtYXBob3JlLCBtYWNo
X3RpbWVzcGVjX3QgeyBzZWNvbmRzLCBuYW5vc2Vjb25kcyB9KTsKK30KKwogdm9pZCBNYWNoU2Vt
YXBob3JlOjp3YWl0KCkKIHsKICAgICBzZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmgKaW5kZXggYjMyY2NlZTNjMGQ4M2E1MDEzMmFhYWUz
ZjU2ZWMwMDBlYmQ4MjNjYi4uZmY3Njk2ZmQyMmVhYjJkNTI1ZmYwZTI1OTJmOTA5YjBjNzc3NGVk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1hcGhvcmUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgPG1hY2gvc2VtYXBob3JlLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNDAsNiArNDEsOCBAQCBwdWJsaWM6CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIH5NYWNoU2VtYXBob3JlKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzaWduYWwoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWxUaHJl
YWQodGhyZWFkX3QgPSBUSFJFQURfTlVMTCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
d2FpdFdpdGhUaW1lb3V0KFNlY29uZHMpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdh
aXQoKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBNYWNoU2VuZFJpZ2h0IGNyZWF0ZVNlbmRS
aWdodCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416823</attachid>
            <date>2020-12-27 11:20:08 -0800</date>
            <delta_ts>2020-12-27 13:18:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220110-20201227112007.patch</filename>
            <type>text/plain</type>
            <size>2505</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2NGE4OGE5ZTE1YjJlZmVhODcyOGJj
NTMxZTNkYmY0ODkzMzRhNTAuLjJjMjE1MGU5ZDU2OTBiZmYzY2M1NmQzMDBhOTRmYTdjNjBjZGMy
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTItMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBXVEY6
Ok1hY2hTZW1hcGhvcmUgdG8gd2FpdCB3aXRoIGEgdGltZW91dCBkdXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIGhlbHBlciBtZXRo
b2Qgb24gdGhlIGNyb3NzLXByb2Nlc3MgV1RGOjpNYWNoU2VtYXBob3JlIGNsYXNzICh0byBiZSB1
dGlsaXplZCBpbiB3ZWJraXQub3JnL2IvMjE5NTg2KS4KKworICAgICAgICAqIHd0Zi9jb2NvYS9N
YWNoU2VtYXBob3JlLmNwcDoKKyAgICAgICAgKFdURjo6TWFjaFNlbWFwaG9yZTo6d2FpdFdpdGhU
aW1lb3V0KToKKworICAgICAgICBUaGlzIHdyYXBzIGEgY2FsbCB0byBgc2VtYXBob3JlX3RpbWVk
d2FpdGAsIGFuZCBjb252ZXJ0cyB0aGUgZ2l2ZW4gdGltZSAoaW4gV1RGOjpTZWNvbmRzKSBpbnRv
IGEKKyAgICAgICAgYG1hY2hfdGltZXNwZWNfdGAsIHdoaWNoIGlzIGFuIHVuc2lnbmVkIHJlcHJl
c2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIGFsb25nIHdpdGggYW5vdGhlciB1bnNpZ25l
ZAorICAgICAgICByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBuYW5vc2Vjb25kcy4KKworICAg
ICAgICAqIHd0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmg6CisKIDIwMjAtMTItMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI3MDk2OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1hcGhvcmUu
Y3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5jcHAKaW5kZXggNzU4OTlm
NTYyNDI1NWI0MTFhNWQxZTBhMWNkMGZlMTljOTRlNTZmMS4uYjBkODgyYzI1MzMyYTM1M2ZjZTBk
MTkxMTNiMGQyZjlkZWQyZWViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTWFj
aFNlbWFwaG9yZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5j
cHAKQEAgLTU5LDYgKzU5LDEzIEBAIHZvaWQgTWFjaFNlbWFwaG9yZTo6d2FpdCgpCiAgICAgc2Vt
YXBob3JlX3dhaXQobV9zZW1hcGhvcmUpOwogfQogCit2b2lkIE1hY2hTZW1hcGhvcmU6OndhaXRX
aXRoVGltZW91dChTZWNvbmRzIHRpbWVvdXQpCit7CisgICAgYXV0byBzZWNvbmRzID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHRpbWVvdXQuc2Vjb25kcygpKTsKKyAgICBhdXRvIG5hbm9zZWNvbmRz
ID0gc3RhdGljX2Nhc3Q8Y2xvY2tfcmVzX3Q+KHRpbWVvdXQubmFub3NlY29uZHMoKSAtIHNlY29u
ZHMgKiBOU0VDX1BFUl9TRUMpOworICAgIHNlbWFwaG9yZV90aW1lZHdhaXQobV9zZW1hcGhvcmUs
IG1hY2hfdGltZXNwZWNfdCB7IHNlY29uZHMsIG5hbm9zZWNvbmRzIH0pOworfQorCiBNYWNoU2Vu
ZFJpZ2h0IE1hY2hTZW1hcGhvcmU6OmNyZWF0ZVNlbmRSaWdodCgpCiB7CiAgICAgcmV0dXJuIE1h
Y2hTZW5kUmlnaHQ6OmNyZWF0ZShtX3NlbWFwaG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NYWNoU2Vt
YXBob3JlLmgKaW5kZXggYjMyY2NlZTNjMGQ4M2E1MDEzMmFhYWUzZjU2ZWMwMDBlYmQ4MjNjYi4u
NDVmNDMzZTg1MGI3M2ZlMTFmYTVkYTQwZjBhMDc4YjI5MmZiYmU4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL01hY2hTZW1hcGhvcmUuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPG1hY2gvc2Vt
YXBob3JlLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKIApAQCAtNDEsNiArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzaWduYWwoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KCk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgd2FpdFdpdGhUaW1lb3V0KFNlY29uZHMpOwogCiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIE1hY2hTZW5kUmlnaHQgY3JlYXRlU2VuZFJpZ2h0KCk7CiAK
</data>
<flag name="review"
          id="434422"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416825</attachid>
            <date>2020-12-27 13:22:20 -0800</date>
            <delta_ts>2020-12-27 22:45:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220110-20201227132219.patch</filename>
            <type>text/plain</type>
            <size>2428</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2NGE4OGE5ZTE1YjJlZmVhODcyOGJj
NTMxZTNkYmY0ODkzMzRhNTAuLmMzYmJhYWRhMzA1MzI2YjZkYjliZGQ5OWJkYzRkMjgyY2JmYjNm
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTItMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byBXVEY6
Ok1hY2hTZW1hcGhvcmUgdG8gd2FpdCB3aXRoIGEgdGltZW91dCBkdXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIGhlbHBlciBtZXRo
b2Qgb24gdGhlIGNyb3NzLXByb2Nlc3MgV1RGOjpNYWNoU2VtYXBob3JlIGNsYXNzICh0byBiZSB1
dGlsaXplZCBpbiB3ZWJraXQub3JnL2IvMjE5NTg2KS4KKworICAgICAgICAqIHd0Zi9jb2NvYS9N
YWNoU2VtYXBob3JlLmNwcDoKKyAgICAgICAgKFdURjo6TWFjaFNlbWFwaG9yZTo6d2FpdEZvcik6
CisKKyAgICAgICAgVGhpcyB3cmFwcyBhIGNhbGwgdG8gYHNlbWFwaG9yZV90aW1lZHdhaXRgLCBh
bmQgY29udmVydHMgdGhlIGdpdmVuIHRpbWUgKGluIFdURjo6U2Vjb25kcykgaW50byBhCisgICAg
ICAgIGBtYWNoX3RpbWVzcGVjX3RgLCB3aGljaCBpcyBhbiB1bnNpZ25lZCByZXByZXNlbnRpbmcg
dGhlIG51bWJlciBvZiBzZWNvbmRzLCBhbG9uZyB3aXRoIGFub3RoZXIgaW50ZWdlcgorICAgICAg
ICByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBuYW5vc2Vjb25kcy4KKworICAgICAgICAqIHd0
Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmg6CisKIDIwMjAtMTItMjAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MDk2OS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1hcGhvcmUuY3BwIGIvU291
cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5jcHAKaW5kZXggNzU4OTlmNTYyNDI1NWI0
MTFhNWQxZTBhMWNkMGZlMTljOTRlNTZmMS4uOTJmY2YxNWMwN2Q5MjRhNDUwNzkzN2ZkMjMwNDU3
MmM0ZGJiYjk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9y
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvTWFjaFNlbWFwaG9yZS5jcHAKQEAgLTU5
LDYgKzU5LDEyIEBAIHZvaWQgTWFjaFNlbWFwaG9yZTo6d2FpdCgpCiAgICAgc2VtYXBob3JlX3dh
aXQobV9zZW1hcGhvcmUpOwogfQogCit2b2lkIE1hY2hTZW1hcGhvcmU6OndhaXRGb3IoU2Vjb25k
cyB0aW1lb3V0KQoreworICAgIGF1dG8gc2Vjb25kcyA9IHRpbWVvdXQuc2Vjb25kc0FzPHVuc2ln
bmVkPigpOworICAgIHNlbWFwaG9yZV90aW1lZHdhaXQobV9zZW1hcGhvcmUsIHsgc2Vjb25kcywg
c3RhdGljX2Nhc3Q8Y2xvY2tfcmVzX3Q+KHRpbWVvdXQubmFub3NlY29uZHNBczx1aW50NjRfdD4o
KSAtIHNlY29uZHMgKiBOU0VDX1BFUl9TRUMpIH0pOworfQorCiBNYWNoU2VuZFJpZ2h0IE1hY2hT
ZW1hcGhvcmU6OmNyZWF0ZVNlbmRSaWdodCgpCiB7CiAgICAgcmV0dXJuIE1hY2hTZW5kUmlnaHQ6
OmNyZWF0ZShtX3NlbWFwaG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9N
YWNoU2VtYXBob3JlLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NYWNoU2VtYXBob3JlLmgKaW5k
ZXggYjMyY2NlZTNjMGQ4M2E1MDEzMmFhYWUzZjU2ZWMwMDBlYmQ4MjNjYi4uYmU3Y2VhMDQ2Yjgx
MmNiYzNlYjNhNzIxMzBkOWE1YmEwMDkzZjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Y29jb2EvTWFjaFNlbWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL01hY2hTZW1h
cGhvcmUuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPG1hY2gvc2VtYXBob3JlLmg+CiAj
aW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNDEs
NiArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwo
KTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgd2FpdEZvcihTZWNvbmRzKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBN
YWNoU2VuZFJpZ2h0IGNyZWF0ZVNlbmRSaWdodCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>