[#108552] [Ruby master Bug#18782] Race conditions in autoload when loading the same feature with multiple threads. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE4NzgyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
11 messages
2022/05/14
[ruby-core:108498] [Ruby master Feature#18611] Promote best practice for combining multiple values into a hash code
From:
"ioquatix (Samuel Williams)" <noreply@...>
Date:
2022-05-10 06:24:17 UTC
List:
ruby-core #108498
SXNzdWUgIzE4NjExIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt cykuCgoKVGhpcyBtYWtlcyBtZSBoYXBweSwgdGhhbmtzIGV2ZXJ5b25lIQoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxODYxMTogUHJvbW90ZSBiZXN0 IHByYWN0aWNlIGZvciBjb21iaW5pbmcgbXVsdGlwbGUgdmFsdWVzIGludG8gYSBoYXNoIGNvZGUK aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4NjExI2NoYW5nZS05NzU0MwoKKiBB dXRob3I6IGNocmlzc2VhdG9uIChDaHJpcyBTZWF0b24pCiogU3RhdHVzOiBDbG9zZWQKKiBQcmlv cml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVXNl ci1kZWZpbmVkIGhhc2ggbWV0aG9kcyBvZnRlbiB3b3JrIGJ5IGNvbWJpbmluZyB0aGUgaGFzaCBj b2RlIG9mIHNldmVyYWwgdmFsdWVzIGludG8gb25lLiBUaGlzIHJlcXVpcmVzIHNvbWUgbG9naWMg dG8gY29tYmluZSB0aGUgdmFsdWVzLiBJbiBvdXIgZXhwZXJpZW5jZSwgdXNlcnMgYXJlIG1ha2lu ZyBhIHZhcmlldHkgb2YgY2hvaWNlcyBmb3IgdGhlIGFsZ29yaXRobSBmb3IgdGhpcywgYW5kIGlu IG1hbnkgY2FzZXMgYXJlIHBpY2tpbmcgYW4gb3B0aW9uIHdoaWNoIG1heSBub3QgYmUgdGhlIGJl c3QgZm9yIHNlY3VyaXR5IGFuZCBwZXJmb3JtYW5jZSBpbiBtdWx0aXBsZSB3YXlzLiBJdCdzIGFs c28gYSBzaGFtZSB0aGF0IHVzZXJzIGFyZSBoYXZpbmcgdG8gdGhpbmsgYWJvdXQgaG93IHRvIGRv IHRoaXMgYmFzaWMgb3BlcmF0aW9uIHRoZW1zZWx2ZXMuCgpGb3IgZXhhbXBsZSwgdGhpcyBoYXNo IG1ldGhvZCBjcmVhdGVzIGEgc2luZ2xlIGhhc2ggY29kZSBieSBjb21iaW5pbmcgdGhlIGhhc2gg dmFsdWUgb2YgdGhyZWUgdmFsdWVzIHRoYXQgbWFrZSB1cCB0aGUgb2JqZWN0LiBUaGUgdXNlciBo YXMgY29tYmluZWQgdGhlIHZhbHVlcyB1c2luZyB0aGUgeG9yIG9wZXJhdG9yIGFuZCBtdWx0aXBs aWNhdGlvbiBieSBwcmltZSBudW1iZXJzIHRvIGRpc3RyaWJ1dGUgYml0cy4gVGhpcyBpcyBhbiBv ayB3YXkgdG8gY29tYmluZSBtdWx0aXBsZSB2YWx1ZXMgaW50byBhIGhhc2ggY29kZS4KCmBgYHJ1 YnkKZGVmIGhhc2gKICB4Lmhhc2ggXiAoeS5oYXNoICogMykgXiAoei5oYXNoICogNSkKZW5kCmBg YAoKQnV0IHVzZXJzIGhhdmUgdG8ga25vdyB0byBkbyB0aGlzLCBhbmQgdGhleSBzb21ldGltZXMg Z2V0IGl0IHdyb25nLCB3cml0aW5nIHRoaW5ncyBsaWtlIHRoaXMuCgpgYGBydWJ5CmRlZiBoYXNo CiAgeC5oYXNoIF4geS5oYXNoIF4gei5oYXNoCmVuZApgYGAKClRoaXMgaXNuJ3QgZGlzdHJpYnV0 aW5nIHRoZSBiaXRzIHZlcnkgd2VsbC4gQSBiYWQgaGFzaCBjb2RlIG1heSBoYXJtIHBlcmZvcm1h bmNlIGlmIGl0IGNhdXNlIG1vcmUgY29sbGlzaW9ucyBpbiBhIGhhc2ggdGFibGUuIENvbGxpc2lv bnMgbWF5IGFsc28gY2F1c2UgZXhjZXNzIGNhY2hlIGV2aWN0aW9uLCB3aGljaCB3b3VsZCBmdXJ0 aGVyIGhhcm0gcGVyZm9ybWFuY2UuIElmIHBlcmZvcm1hbmNlIGlzIHJlZHVjZWQgaW4gdGhpcyB3 YXkgdGhlcmUncyBhIHBvdGVudGlhbCBzZWN1cml0eSByaXNrIGR1ZSB0byBkZW5pYWwtb2Ytc2Vy dmljZS4gKFdlIGRvbid0IHRoaW5rIHRoaXMgaXMgYW4gaW1tZWRpYXRlIHByYWN0aWNhbCBzZWN1 cml0eSBwcm9ibGVtLCB3aGljaCBpcyB3aHkgd2UncmUgZGlzY3Vzc2luZyBpbiB0aGUgb3BlbiBp c3N1ZSB0cmFja2VyLCBub3QgdGhlIHNlY3VyaXR5IG1haWxpbmcgbGlzdC4pCgpUaGUgYHguaGFz aCBeICh5Lmhhc2ggKiAzKSBeICh6Lmhhc2ggKiA1KWAgcGF0dGVybiBpcyBzdGlsbCBub3QgaWRl YWwsIGFzIHVzZXJzIGhhdmUgdG8gbWFudWFsbHkgd3JpdGUgaXQsIGFuZCBpdCdzIGEgbG90IG9m IGxvZ2ljIHRvIGV4ZWN1dGUgaW4gdGhlIFJ1YnkgaW50ZXJwcmV0ZXIsIHdoZW4gaXQgY291bGQg YmUgcG9zc2libHkgYmUgZG9uZSBpbiBuYXRpdmUgY29kZSBpbnN0ZWFkLiBBIGJldHRlciBwYXR0 ZXJuIHdlIHRoaW5rIGlzIHRoaXM6CgpgYGBydWJ5CmRlZiBoYXNoCiAgW3gsIHksIHpdLmhhc2gK ZW5kCmBgYAoKVGhpcyBsZWF2ZXMgdGhlIGxvZ2ljIG9mIGNyZWF0aW5nIGEgc3VpdGFibGUgYW5k IHNhZmUgaGFzaCB2YWx1ZSB0byBgWy4uLl0uaGFzaGAsIHdoaWNoIGRvZXMgaXQgY29ycmVjdGx5 LgoKV2h5IGRvZXNuJ3QgZXZlcnlvbmUgYWxyZWFkeSB1c2UgdGhpcyBwYXR0ZXJuPyBCZWNhdXNl IGl0J3Mgbm90IGRvY3VtZW50ZWQgYXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLiBXZSB3YW50IHRv IHByZXNlbnQgYSBjb3VwbGUgb2Ygb3B0aW9ucyBmb3Igd2hhdCBjb3VsZCBiZSBkb25lIHRvIGVu Y291cmFnZSBwZW9wbGUgdG8gdXNlIHRoaXMgcGF0dGVybiBvciBhbiBlcXVpdmFsZW50LCB0byBo ZWxwIHBlb3BsZSB3cml0ZSBtb3JlIGNvbmNpc2UgYW5kIGNsZWFyIGNvZGUgdGhhdCBpcyBhbHNv IG1vcmUgcGVyZm9ybWFudCBhbmQgc2VjdXJlLgoKIyBEb2N1bWVudCBgWy4uLl0uaGFzaGAgYXMg YmVzdCBwcmFjdGljZSBhbmQgb3B0aW1pc2UgaXQKCklmIHdlIHdhbnQgcGVvcGxlIHRvIHVzZSBg Wy4uLl0uaGFzaGAsIHdlIHNob3VsZCBzYXkgdGhhdCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3Ig YEtlcm5lbCNoYXNoYCBhcyB0aGUgYmVzdCBwcmFjdGljZS4gV29yZGluZyBhbG9uZyB0aGUgbGlu ZXMgb2YKCj4gSWYgeW91J3JlIGltcGxlbWVudGluZyBhIGhhc2ggY29kZSBmb3IgYSBjb21wb3Vu ZCBzZXQgb2YgdmFsdWVzLCBiZXN0IHByYWN0aWNlIGlzIHRvIGNvbWJpbmUgdGhlbSB3aXRoIGBb Li4uXS5oYXNoYC4gRm9yIGV4YW1wbGUuLi4uCgpUaGlzIHdheSBwZW9wbGUgcmVhZGluZyB0aGUg ZG9jdW1lbnRhdGlvbiBvbiBgS2VybmVsI2hhc2hgIGdldCBwb2ludGVkIGluIHRoZSBjbGVhciwg Y29uY2lzZSwgcGVyZm9ybWFudCwgc2VjdXJlIGRpcmVjdGlvbi4KCldlIGNhbiBjb21iaW5lIHRo aXMgcmVjb21tZW5kYXRpb24gd2l0aCBhbiBvcHRpbWlzYXRpb24gdG8gYFsuLi5dLmhhc2hgIHRv IHJlbW92ZSB0aGUgYXJyYXkgYWxsb2NhdGlvbiBpbiBpbXBsZW1lbnRhdGlvbiBvZiBSdWJ5IHdp dGhvdXQgZXNjYXBlIGFuYWx5c2lzIGFuZCBzY2FsYXIgcmVwbGFjZW1lbnQsIHNpbWlsYXIgdG8g d2hhdCBpcyBkb25lIGZvciBgQXJyYXkjbWluYCBhbmQgYCNtYXhgLiBUaGlzIHdheSB0aGUgYmVz dCBwcmFjdGljZSBpcyBldmVuIGZhc3Rlci4KCiMgSW50cm9kdWNlIGEgbmV3IHNpbWlsYXIgbWV0 aG9kLCBidXQgc3BlY2lmaWNhbGx5IGZvciB0aGUgcHVycG9zZSBzbyBpdCBpcyBkaXNjb3ZlcmFi bGUKCkEgc2Vjb25kIG9wdGlvbiBpcyB0byBpbnRyb2R1Y2UgYSBuZXcgbWV0aG9kLCBzcGVjaWZp Y2FsbHkgZm9yIHRoaXMgdGFzaywgYGhhc2hfb2JqZWN0cyguLi4pYC4gVGhpcyBpcyBpbnNwaXJl ZCBCeSBKYXZhJ3MgYE9iamVjdHMuaGFzaCguLi4pYC4gVGhlIHJlYXNvbiBmb3IgdGhlIG5ldyBt ZXRob2QgaXMgdGhhdCBpdCBzaG91bGQgbWFrZSBpdCBtb3JlIGRpc2NvdmVyYWJsZSAtIGlmIHlv dSBnbyBsb29raW5nIGZvciBhIHRvb2wgdG8gY29tYmluZSBoYXNoIHZhbHVlcyB5b3UnZCBmaW5k IG9uZS4gV2UnZCBzdGlsbCBsaW5rIHRvIGl0IGZyb20gYEtlcm5lbCNoYXNoYC4gVGhpcyBtZXRo b2Qgd291bGQgbm90IHJlcXVpcmUgdGhlIGFycmF5IGFsbG9jYXRpb24gcmVtb3ZhbCBvcHRpbWlz YXRpb24sIGFzIGl0J3MganVzdCBhIHNpbXBsZSBjYWxsLgoKIyBFeGFtcGxlcyBvZiBoYXNoIG1l dGhvZHMKCkV2ZW4gdGhlIE1SSSBjb2RlYmFzZSBoYXMgc29tZSBzdWJvcHRpbWFsIGhhc2ggbWV0 aG9kcyB3ZSBkb24ndCBuZWVkIHRvIGxvb2sgdmVyeSBmYXIgZm9yIGV4YW1wbGVzLiBGb3IgZXhh bXBsZSBsaWIgYGxpYi9yZXNvbHYucmJgLCB0aGVzZSB0d28gaGFzaCBtZXRob2RzIGRvbid0IGRp c3RyaWJ1dGUgdGhlIGJpdHMgdGhleSBjb21iaW5lCgoqIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5 L3J1YnkvYmxvYi9jNDQ1OTYzNTc1YTg1NzJmNmIwYmFmNzEzNTA5M2MxMjhhZGFiM2I5L2xpYi9y ZXNvbHYucmIjTDE3MzQKKiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Jsb2IvYzQ0NTk2 MzU3NWE4NTcyZjZiMGJhZjcxMzUwOTNjMTI4YWRhYjNiOS9saWIvcmVzb2x2LnJiI0wxMzA3CgpC b3RoIHRoZXNlIGV4YW1wbGVzIGNvdWxkIGJlIHJlcGxhY2VkIHdpdGggZWl0aGVyIG9mIG91ciBw cm9wb3NhbHMuCgpBIGdvb2QgZXhhbXBsZSBvZiBzb21lb25lIGFscmVhZHkgdXNpbmcgYmVzdCBw cmFjdGljZSBpcyB0aGlzLgoKKiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Jsb2IvMTI4 OTcyMTg5Mjg0ZjQzMzg3MjJlOGE5MTBkMGI0ZjZlN2EwMmIzMS9saWIvYnVuZGxlci9zb3VyY2Uv Z2l0LnJiI0w1MAoKQnV0IHRoaXMgd291bGQgc3RpbGwgYmUgZmFzdGVyIHdpdGggdGhlIG9wdGlt aXNhdGlvbiB3ZSBwcm9wb3NlZCwgb3IgdXNpbmcgYGhhc2hfb2JqZWN0cyguLi4pYCwgYXMgdGhh dCdkIHJlbW92ZSB0aGUgYXJyYXkgYWxsb2NhdGlvbiBhbmQgdGhlIGBoYXNoYCBjYWxsLgoKIyBP dGhlciB0aGluZ3Mgd2UndmUgYWxyZWFkeSBkb25lCgpXZSd2ZSBwcm9wb3NlZCBhIFJ1Ym9Db3Ag Y29wIHRvIHRyeSB0byBjYXRjaCB0aGUgcGF0dGVybiB3ZSB0aGluayBpcyBzdWJvcHRpbWFsIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydWJvY29wL3J1Ym9jb3AvcHVsbC8xMDQ0MS4KCkNvLWF1dGhvcmVk IHdpdGggQHNhbWJvc3RvY2suCgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpV bnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1Ympl Y3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxt YW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==