[ruby-core:109613] [Ruby master Feature#18965] Further Thread::Queue improvements
From:
"Eregon (Benoit Daloze)" <noreply@...>
Date:
2022-08-21 12:13:11 UTC
List:
ruby-core #109613
SXNzdWUgIzE4OTY1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4K CgpieXJvb3QgKEplYW4gQm91c3NpZXIpIHdyb3RlIGluICNub3RlLTEwOgo+IElzIGl0IHRydWUg Zm9yIGJvdGggcHVzaCBhbmQgcG9wPyBJIGNhbiBzZWUgdGhlIGlzc3VlIGZvciBwdXNoLCBidXQg bm8gc28gbXVjaCBmb3IgcG9wLgoKSW50ZXJlc3RpbmcsIGZvciBgTGlua2VkQmxvY2tpbmdRdWV1 ZWAgdGhlcmUgaXMgYGphdmEudXRpbC5jb25jdXJyZW50LkJsb2NraW5nUXVldWUjZHJhaW5Ubyhq YXZhLnV0aWwuQ29sbGVjdGlvbjw/IHN1cGVyIEU+IG91dHB1dCwgaW50IG1heEVsZW1lbnRzKWAg KHNlbWFudGljcyBhcmUgcmVtb3ZlIHVwIHRvIG1heEVsZW1lbnRzLCBkb24ndCB3YWl0IGZvciBt b3JlIGVsZW1lbnRzKS4KQnV0IGBMaW5rZWRCbG9ja2luZ1F1ZXVlYCBpcyBhY3R1YWxseSBub3Qg YSBub24tYmxvY2tpbmcgcXVldWUgKGl0IHVzZXMgMiBsb2NrcykuCgpgQ29uY3VycmVudExpbmtl ZFF1ZXVlYCBpcyBhIG5vbi1ibG9ja2luZyBxdWV1ZSBhbmQgbW9yZSB3aGF0IEkgd2FzIHRoaW5r aW5nIGFib3V0IGZvciBub24tYmxvY2tpbmcgcXVldWUgaW1wbGVtZW50YXRpb25zLgpUaGF0IGRv ZXNuJ3QgaGF2ZSBhIGJhdGNoIHBvcCwgYW5kIGlzIGxpdGVyYWxseSBqdXN0IENBUyBvcGVyYXRp b25zIGZvciBib3RoIHB1c2ggYW5kIHBvcC4KQnV0IHRoYXQncyBwcm9iYWJseSBub3QgZGlyZWN0 bHkgdXNhYmxlIHRvIGltcGxlbWVudCBSdWJ5J3MgUXVldWUgc2luY2UgaXQgZG9lc24ndCBoYXZl IGEgYmxvY2tpbmcgcG9wIHdoaWNoIFF1ZXVlI3BvcCBuZWVkcy4KCkkgdGhpbmsgdGhlcmUgY2Fu IGJlIHF1ZXVlIGltcGxlbWVudGF0aW9ucyBpbiBiZXR3ZWVuLCB3aGljaCB1c2UgQ0FTKG5vZGUp IGZvciBwdXNoL3BvcCwgYnV0IGlmIGl0IGZhaWxzIHRoZW4gZ29lcyB0byBhIGxvY2sgb3Igc2lt aWxhciB0byB3YWl0LgpJbiBzdWNoIGEgY2FzZSwgaXQncyBub3QgcG9zc2libGUgdG8gaW1wbGVt ZW50IGJhdGNoIHB1c2gvcG9wIGF0b21pY2FsbHksIG9yIGl0IHdvdWxkIGZvcmNlIHRvIGdpdmUg dXAgb24gdGhlIENBUyBmYXN0IHBhdGggYW5kIHRha2UgYSBsb2NrIGFsd2F5cyAoYSBsb2NrIGNh biB1c2UgQ0FTIGludGVybmFsbHkgYnV0IGJhc2ljYWxseSBpdCdzIGV4dHJhIHdvcmssIGluZGly ZWN0aW9ucyBhbmQgbW9zdCBpbXBvcnRhbnRseSBjb250ZW50aW9uKS4KSXQncyBzdGlsbCBwb3Nz aWJsZSB0byBpbXBsZW1lbnQgYmF0Y2ggcG9wIGFzIGBOLnRpbWVzIHsgcXVldWUucG9wIH1gIG9m IGNvdXJzZSAod2l0aCBubyBwZXJmb3JtYW5jZSBiZW5lZml0KS4KCkkgdGhpbmsgdGhlIHByb2Js ZW0gaXMgbW9zdGx5IHNlbWFudGljcywgaWYgdGhlcmUgaXMgYSBiYXRjaCBwb3AsIGl0IG1pZ2h0 IGxlYWQgdG8gcGVvcGxlIHRvIHRoaW5rIGl0IHJlbW92ZXMgTiBlbGVtZW50cyBhdG9taWNhbGx5 IG9yIGFueSBiZXR0ZXIgdGhhbiBgTi50aW1lcyB7IHF1ZXVlLnBvcCB9YCwgYnV0IGluIGZhY3Qg aXQgbWlnaHQgbm90IChhdG9taWMgb3IgYmV0dGVyIHBlcmYpLgpBbmQgaWYgYSBzaW5nbGUgUnVi eSBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBoYXMgYXRvbWljIHNlbWFudGljcyB0aGVyZSwgcGVv cGxlIG1pZ2h0IHJlbHkgb24gaXQsIGp1c3QgbGlrZSB0aGV5IHJlbHkgb24gU2V0IGJlaW5nIG9y ZGVyZWQgKGV2ZW4gdGhvdWdoIGl0IHdhcyBuZXZlciBkb2N1bWVudGVkKS4KQW5kIHRoZXJlZm9y ZSB0aGF0IHdvdWxkIGJhc2ljYWxseSBwcmV2ZW50IHNvbWUgcXVldWUgaW1wbGVtZW50YXRpb25z IHRvIGJlIHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgKGFuZCBlLmcuIGZvcmNlIGFsbCBSdWJ5IFF1 ZXVlIGltcGxzIHRvIGJlIHNpbmdsZS1sb2NrIG9yIG1heWJlIGR1YWwtbG9jayBkZXBlbmRpbmcg b24gdGhlIGF0b21pY2l0eSBndWFyYW50ZWVzKS4KVGhpbmdzIGxpa2UgbGluZWFyaXphYmlsaXR5 IGp1c3QgZG9uJ3Qgd29yayBmb3IgYmF0Y2ggcHVzaC9wb3AuClNvIEkgdGhpbmsgaXQncyBiZXR0 ZXIgdG8ga2VlcCBzaW5nbGUgcHVzaC9wb3AsIGJlY2F1c2UgdGhvc2Ugc2VtYW50aWNzIGFyZSB3 ZWxsLWRlZmluZWQgYW5kIGhvbm9yZWQgYnkgYWxsIHF1ZXVlIGltcGxlbWVudGF0aW9ucy4KSWYg dGhlIHVzZXIgZG9lcyBgTi50aW1lcyB7IHF1ZXVlLnBvcCB9YCwgdGhlbiB0aGUgc2VtYW50aWNz IGFyZSB2ZXJ5IGNsZWFyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpGZWF0dXJlICMxODk2NTogRnVydGhlciBUaHJlYWQ6OlF1ZXVlIGltcHJvdmVtZW50cwpodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NjUjY2hhbmdlLTk4Nzk3CgoqIEF1dGhv cjogYnlyb290IChKZWFuIEJvdXNzaWVyKQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3Jt YWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGb2xsb3dpbmcgdGhl IHJlY2VudCBhZGRpdGlvbiBvZiBhIGB0aW1lb3V0YCBwYXJhbWV0ZXIgdG8gYFF1ZXVlI3BvcGAs IHRoZXJlIGFyZSBhIGhhbmRmdWwgb2Ygb3RoZXIgaW1wcm92ZW1lbnRzIEknZCBsaWtlIHRvIG1h a2UuCgoKIyMjIEJhdGNoIGluc2VydAoKV2hlbiB1c2luZyB0aGUgcXVldWUgZm9yIGJhdGNoIHBy b2Nlc3NpbmcsIGl0IHdvdWxkIGJlIGdvb2QgdG8gYmUgYWJsZSB0byBwdXNoIG11bHRpcGxlIGVs ZW1lbnRzIGF0IG9uY2U6CgpDdXJyZW50bHkgeW91IGhhdmUgdG8gY2FsbCBgcHVzaGAgcmVwZWF0 ZWRseQoKYGBgcnVieQppdGVtcy5lYWNoIGRvIHxpdGVtfAogIHF1ZXVlLnB1c2goaXRlbSkKZW5k CmBgYAoKVGhhdCdzIHdhc3RlZnVsIGJlY2F1c2Ugb24gZWFjaCBjYWxsIHdlIGNoZWNrIHdldGhl ciB0aGUgcXVldWUgaXMgY2xvc2VkLCB0cnkgdG8gd2FrZXVwIGJsb2NrZWQgdGhyZWFkcywgZXRj LgoKSXQgd291bGQgYmUgbXVjaCBiZXR0ZXIgaWYgeW91IGNvdWxkIGRvOgoKYGBgcnVieQpxdWV1 ZS5jb25jYXQoaXRlbXMpCmBgYAoKV2l0aCBvZiBjb3Vyc2UgYm90aCBgbm9uYmxvY2tgIGFuZCBg dGltZW91dGAgc3VwcG9ydC4KClRoZW4gdGhlcmUncyB0aGUgcXVlc3Rpb24gb2YgaG93IGBTaXpl ZFF1ZXVlYCB3b3VsZCBiZWhhdmUgaWYgaXQncyBub3QgZnVsbCwgYnV0IHN0aWxsIGRvZXNuJ3Qg aGF2ZSBzcGFjZSBmb3IgYWxsIHRoZSBlbGVtZW50cy4gZS5nLgpgYGBydWJ5CnF1ZXVlID0gU2l6 ZWRRdWV1ZS5uZXcoMTApCnF1ZXVlLmNvbmNhdCg2LnRpbWVzLnRvX2EpCnF1ZXVlLmNvbmNhdCg2 LnRpbWVzLnRvX2EpICMgQmxvY2sgdW50aWwgdGhlcmUgaXMgNiBmcmVlIHNsb3RzPwpgYGAKCkkg dGhpbmsgdGhlIHNpbXBsZXN0IHdvdWxkIGJlIHRvIHdhaXQgZm9yIGVub3VnaCBzcGFjZSB0byBh cHBlbmQgdGhlIGVudGlyZSBzZXQsIGJlY2F1c2UgY29tYmluZWQgd2l0aCBhIHRpbWVvdXQsIGl0 IHdvdWxkIGJlIGF3a3dhcmQgaWYgb25seSBwYXJ0IG9mIHRoZSBhcnJheSB3YXMgY29uY2F0ZW5h dGVkLgoKCiMjIyBCYXRjaCBwb3AKClNpbWlsYXJseSwgc29tZXRpbWVzIHRoZSBjb25zdW1lciBv ZiBhIHF1ZXVlIGlzIGNhcGFibGUgb2YgYmF0Y2hpbmcsIGFuZCByaWdodCBub3cgaXQncyBub3Qg ZWZmaWNpZW50OgoKCmBgYHJ1YnkKbG9vcCBkbwogIGl0ZW1zID0gW3F1ZXVlLnBvcF0KICBiZWdp bgogICAgOTkudGltZXMgZG8KICAgICAgaXRlbXMgPDwgcXVldWUucG9wKHRydWUpICMgdHJ1ZSBp cyBmb3Igbm9uYmxvY2sKICAgIGVuZAogIHJlc2N1ZSBUaHJlYWRFcnJvciAjIGVtcHR5IHF1ZXVl CiAgZW5kCiAgcHJvY2Vzc19pdGVtcyhpdGVtcykKZW5kCmBgYAoKSXQgd291bGQgYmUgbXVjaCBt b3JlIGVmZmljaWVudCBpZiBgcG9wYCBhY2NlcHRlZCBhIGBjb3VudGAgcGFyYW1ldGVyOgoKYGBg cnVieQpsb29wIGRvCiAgaXRlbXMgPSBxdWV1ZS5wb3AoY291bnQ6IDEwMCkKICBwcm9jZXNzX2l0 ZW1zKGl0ZW1zKQplbmQKYGBgCgpUaGUgYmVoYXZpb3Igd291bGQgYmU6CiAgLSBCbG9jayBpZiB0 aGUgcXVldWUgaXMgZW1wdHkKICAtIElmIGl0J3Mgbm90IGVtcHR5LCByZXR1cm4gKip1cCB0byoq IGBjb3VudGAgaXRlbXMgKEp1c3QgbGlrZSBgQXJyYXkjcG9wYCkKCgojIyMgTm9uIGJsb2NraW5n IG1vZGUsIHdpdGhvdXQgZXhjZXB0aW9uCgpBcyBzaG93biBhYm92ZSwgdGhlIGN1cnJlbnQgYG5v bmJsb2NrYCBwYXJhbWV0ZXIgaXMgYSBiaXQgYXdrd2FyZCwgYmVjYXVzZToKCiAgLSBJdCByYWlz ZXMgYW4gZXhjZXB0aW9uLCB3aGljaCBpcyB2ZXJ5IGV4cGVuc2l2ZSBmb3IgYSBjb25zdHJ1Y3Qg b2Z0ZW4gdXNlZCBpbiAibG93IGxldmVsIiBjb2RlLgogIC0gVGhlIGV4Y2VwdGlvbiBpcyBgVGhy ZWFkRXJyb3JgLCBzbyB5b3UgbWF5IGhhdmUgdG8gbWF0Y2ggdGhlIGVycm9yIG1lc3NhZ2UgZm9y IGAicXVldWUgZW1wdHkiYCwgdG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgY29tZSBmcm9tIGEgTXV0 ZXggaXNzdWUgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4KCgpJIGJlbGlldmUgdGhhdCB3ZSBjb3Vs ZCBpbnRyb2R1Y2UgYSBrZXl3b3JkIGFyZ3VtZW50OgoKYGBgcnVieQpRdWV1ZS5uZXcucG9wKG5v bmJsb2NrOiB0cnVlKSAjID0+IG5pbApgYGAKCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5v cmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1i aW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K