[ruby-core:109564] [Ruby master Feature#18965] Further Thread::Queue improvements
From:
"byroot (Jean Boussier)" <noreply@...>
Date:
2022-08-18 19:59:35 UTC
List:
ruby-core #109564
SXNzdWUgIzE4OTY1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4K Cgo+IFRoYXQgd291bGQgbWVhbiBiYXNpY2FsbHkgaWdub3JpbmcgdGhlIHRpbWVvdXQsIG5vdCBn cmVhdC4KCk1heWJlIG15IHdyaXRpbmcgd2Fzbid0IGNsZWFyLiBJIGRvbid0IHN1Z2dlc3QgdG8g aWdub3JlIHRoZSB0aW1lb3V0LCBidXQgdG8gZWl0aGVyIGFwcGVuZCBhbGwgaXRlbXMgb3Igbm9u ZS4gSWYgdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGF2YWlsYWJsZSwgd2FpdCBmb3IgYXMgbG9u ZyBhcyB0aGUgdGltZW91dCBhbGxvd3MgeW91IHRvLgoKPiBJIHRoaW5rIGZvciB0aGVzZSBiYXRj aCBwdXNoL3BvcCwgdGhleSBzaG91bGQgYmUgbW90aXZhdGVkIHdpdGggYmVuY2htYXJrcyAoaWRl YWxseSBiYXNlZCBvbiBzb21lIHJlYWwgdXNlLWNhc2UpIGFuZCBhIHByb29mLW9mLWNvbmNlcHQg UFIuCgpMaWtlIHRoZSBwcmV2aW91cyBjaGFuZ2VzIEkgcmVxdWVzdGVkIG9uIHF1ZXVlLCB0aGlz IGlzIG1vdGl2YXRlZCBieSBhIHJlYWwgd29ybGQgdXNlIGNhc2UsIGJhc2ljYWxseSBJJ2QgbGlr ZSB0byB1c2UgYSBTaXplZFF1ZXVlIGluIHRoaXMgY29kZTogaHR0cHM6Ly9naXRodWIuY29tL1No b3BpZnkvc3RhdHNkLWluc3RydW1lbnQvYmxvYi9kYThhNzRjN2ZiZThmZGQ0MjFhYTFkZjdlZGEy YTk5NmJjN2MzZjExL2xpYi9zdGF0c2QvaW5zdHJ1bWVudC9iYXRjaGVkX3VkcF9zaW5rLnJiI0w5 My1MMTIzCgpUaGlzIGxpYnJhcnkgaGFzIGEgYmFja2dyb3VuZCB0aHJlYWQgdGhhdCBtb25pdG9y cyBhIHF1ZXVlLCBldmVyeXRpbWUgdGhlIHF1ZXVlIGhhcyBYIGl0ZW1zIG9yIHRoYXQgWSBzZWNv bmRzIGhhdmUgcGFzc2VkLCBpdCBmbHVzaGVzIHRoZSBxdWV1ZSBhbmQgZW1pdCBgc3RhdHNkYCBl dmVudHMuCgpJIGNhbiB0cnkgaW1wbGVtZW50aW5nIHRoZSBzdWdnZXN0ZWQgZmVhdHVyZSBhbmQg dGhlbiBiZW5jaG1hcmsgdGhhdCBjb2RlIHVzaW5nIGl0LgoKPiBUaGUga3dhcmcgc2VlbXMgYSBi aXQgY29uZnVzaW5nIGdpdmVuIHRoZSBleGlzdGluZyBwb3NpdGlvbmFsIGFyZyAoUXVldWUjcG9w KG5vbl9ibG9jaz1mYWxzZSkpLgoKSW5kZWVkLCBpbiBteSBtaW5kIHRoZSBwb3NpdGlvbmFsIGFy Z3VtZW50IHdvdWxkIGJlIHNvbWV3aGF0IGRlcHJlY2F0ZWQuCgo+IElzIHRoZXJlIGFueSBjb3Jl IG1ldGhvZCBjdXJyZW50bHkgd2l0aCBhIG5vbmJsb2NrIGtleXdvcmQgYXJndW1lbnQ/CgpJIGRv bid0IHRoaW5rIHNvLiAKCj4gV2h5IG5vdCBleGNlcHRpb246IGZhbHNlIHdoaWNoIHNlZW1zIG1v cmUgc3RhbmRhcmQgYW5kIGVzdGFibGlzaGVkLCBpLmUuLCBxdWV1ZS5wb3AodHJ1ZSwgZXhjZXB0 aW9uOiBmYWxzZSk/IFRvbyB2ZXJib3NlL2luY29udmVuaWVudD8KCkkgdGhpbmsgdGhlIG1haW4g cmVhc29uIGlzIHRoYXQgSSBkb24ndCBsaWtlIHRoYXQgcG9zaXRpb25hbCBhcmd1bWVudC4gQnV0 IHllcyBgZXhjZXB0aW9uOiBmYWxzZWAgd291bGQgYmUgY29uc2lzdGVudCB3aXRoIGBJTyNyZWFk X25vbmJsb2NrYCwgZXhjZXB0IHRoYXQgaWYgcGFzc2VkIGFsb25lIGl0IGRvZXMgbm90aGluZywg d2hpY2ggaXMgYXdrd2FyZC4KCj4gIHNvIGl0J3MganVzdCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRh dGlvbiBhZGRpbmcgb25lIGJ5IG9uZSwgaGVuY2UgYWRkQWxsKCkgaXMgbm90IGF0b21pYyAKCkkg ZG9uJ3QgdGhpbmsgdGhhdCdzIHJlYWxseSBhIHByb2JsZW0sIGF0IGxlYXN0IG5vdCBmb3IgdGhl IHVzZSBjYXNlcyBJIGVudmlzaW9uLCBvZiBhIGJhY2tncm91bmQgdGhyZWFkIGNvbGxlY3Rpbmcg d29yayBhbmQgcHJvY2Vzc2luZyBpdCBpbiBiYXRjaGVzLiBXb3JzdCBjYXNlIGlmIGl0J3Mgbm90 IGF0b21pYywgdGhlIGJhY2tncm91bmQgdGhyZWFkIHdpbGwgZ2V0IHRoZSBmaXJzdCBlbGVtZW50 LCBhbmQgdGhlbiBnZXQgdGhlIHJlc3Qgb24gaXRzIG5leHQgcG9wLgoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTg5NjU6IEZ1cnRoZXIgVGhyZWFk OjpRdWV1ZSBpbXByb3ZlbWVudHMKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4 OTY1I2NoYW5nZS05ODczNQoKKiBBdXRob3I6IGJ5cm9vdCAoSmVhbiBCb3Vzc2llcikKKiBTdGF0 dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KRm9sbG93aW5nIHRoZSByZWNlbnQgYWRkaXRpb24gb2YgYSBgdGltZW91dGAg cGFyYW1ldGVyIHRvIGBRdWV1ZSNwb3BgLCB0aGVyZSBhcmUgYSBoYW5kZnVsIG9mIG90aGVyIGlt cHJvdmVtZW50cyBJJ2QgbGlrZSB0byBtYWtlLgoKCiMjIyBCYXRjaCBpbnNlcnQKCldoZW4gdXNp bmcgdGhlIHF1ZXVlIGZvciBiYXRjaCBwcm9jZXNzaW5nLCBpdCB3b3VsZCBiZSBnb29kIHRvIGJl IGFibGUgdG8gcHVzaCBtdWx0aXBsZSBlbGVtZW50cyBhdCBvbmNlOgoKQ3VycmVudGx5IHlvdSBo YXZlIHRvIGNhbGwgYHB1c2hgIHJlcGVhdGVkbHkKCmBgYHJ1YnkKaXRlbXMuZWFjaCBkbyB8aXRl bXwKICBxdWV1ZS5wdXNoKGl0ZW0pCmVuZApgYGAKClRoYXQncyB3YXN0ZWZ1bCBiZWNhdXNlIG9u IGVhY2ggY2FsbCB3ZSBjaGVjayB3ZXRoZXIgdGhlIHF1ZXVlIGlzIGNsb3NlZCwgdHJ5IHRvIHdh a2V1cCBibG9ja2VkIHRocmVhZHMsIGV0Yy4KCkl0IHdvdWxkIGJlIG11Y2ggYmV0dGVyIGlmIHlv dSBjb3VsZCBkbzoKCmBgYHJ1YnkKcXVldWUuY29uY2F0KGl0ZW1zKQpgYGAKCldpdGggb2YgY291 cnNlIGJvdGggYG5vbmJsb2NrYCBhbmQgYHRpbWVvdXRgIHN1cHBvcnQuCgpUaGVuIHRoZXJlJ3Mg dGhlIHF1ZXN0aW9uIG9mIGhvdyBgU2l6ZWRRdWV1ZWAgd291bGQgYmVoYXZlIGlmIGl0J3Mgbm90 IGZ1bGwsIGJ1dCBzdGlsbCBkb2Vzbid0IGhhdmUgc3BhY2UgZm9yIGFsbCB0aGUgZWxlbWVudHMu IGUuZy4KYGBgcnVieQpxdWV1ZSA9IFNpemVkUXVldWUubmV3KDEwKQpxdWV1ZS5jb25jYXQoNi50 aW1lcy50b19hKQpxdWV1ZS5jb25jYXQoNi50aW1lcy50b19hKSAjIEJsb2NrIHVudGlsIHRoZXJl IGlzIDYgZnJlZSBzbG90cz8KYGBgCgpJIHRoaW5rIHRoZSBzaW1wbGVzdCB3b3VsZCBiZSB0byB3 YWl0IGZvciBlbm91Z2ggc3BhY2UgdG8gYXBwZW5kIHRoZSBlbnRpcmUgc2V0LCBiZWNhdXNlIGNv bWJpbmVkIHdpdGggYSB0aW1lb3V0LCBpdCB3b3VsZCBiZSBhd2t3YXJkIGlmIG9ubHkgcGFydCBv ZiB0aGUgYXJyYXkgd2FzIGNvbmNhdGVuYXRlZC4KCgojIyMgQmF0Y2ggcG9wCgpTaW1pbGFybHks IHNvbWV0aW1lcyB0aGUgY29uc3VtZXIgb2YgYSBxdWV1ZSBpcyBjYXBhYmxlIG9mIGJhdGNoaW5n LCBhbmQgcmlnaHQgbm93IGl0J3Mgbm90IGVmZmljaWVudDoKCgpgYGBydWJ5Cmxvb3AgZG8KICBp dGVtcyA9IFtxdWV1ZS5wb3BdCiAgYmVnaW4KICAgIDk5LnRpbWVzIGRvCiAgICAgIGl0ZW1zIDw8 IHF1ZXVlLnBvcCh0cnVlKSAjIHRydWUgaXMgZm9yIG5vbmJsb2NrCiAgICBlbmQKICByZXNjdWUg VGhyZWFkRXJyb3IgIyBlbXB0eSBxdWV1ZQogIGVuZAogIHByb2Nlc3NfaXRlbXMoaXRlbXMpCmVu ZApgYGAKCkl0IHdvdWxkIGJlIG11Y2ggbW9yZSBlZmZpY2llbnQgaWYgYHBvcGAgYWNjZXB0ZWQg YSBgY291bnRgIHBhcmFtZXRlcjoKCmBgYHJ1YnkKbG9vcCBkbwogIGl0ZW1zID0gcXVldWUucG9w KGNvdW50OiAxMDApCiAgcHJvY2Vzc19pdGVtcyhpdGVtcykKZW5kCmBgYAoKVGhlIGJlaGF2aW9y IHdvdWxkIGJlOgogIC0gQmxvY2sgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5CiAgLSBJZiBpdCdzIG5v dCBlbXB0eSwgcmV0dXJuICoqdXAgdG8qKiBgY291bnRgIGl0ZW1zIChKdXN0IGxpa2UgYEFycmF5 I3BvcGApCgoKIyMjIE5vbiBibG9ja2luZyBtb2RlLCB3aXRob3V0IGV4Y2VwdGlvbgoKQXMgc2hv d24gYWJvdmUsIHRoZSBjdXJyZW50IGBub25ibG9ja2AgcGFyYW1ldGVyIGlzIGEgYml0IGF3a3dh cmQsIGJlY2F1c2U6CgogIC0gSXQgcmFpc2VzIGFuIGV4Y2VwdGlvbiwgd2hpY2ggaXMgdmVyeSBl eHBlbnNpdmUgZm9yIGEgY29uc3RydWN0IG9mdGVuIHVzZWQgaW4gImxvdyBsZXZlbCIgY29kZS4K ICAtIFRoZSBleGNlcHRpb24gaXMgYFRocmVhZEVycm9yYCwgc28geW91IG1heSBoYXZlIHRvIG1h dGNoIHRoZSBlcnJvciBtZXNzYWdlIGZvciBgInF1ZXVlIGVtcHR5ImAsIHRvIG1ha2Ugc3VyZSBp dCBkb2Vzbid0IGNvbWUgZnJvbSBhIE11dGV4IGlzc3VlIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQu CgoKSSBiZWxpZXZlIHRoYXQgd2UgY291bGQgaW50cm9kdWNlIGEga2V5d29yZCBhcmd1bWVudDoK CmBgYHJ1YnkKUXVldWUubmV3LnBvcChub25ibG9jazogdHJ1ZSkgIyA9PiBuaWwKYGBgCgoKCgot LSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5 LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8v bGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==