[ruby-core:108328] [Ruby master Bug#18649] Enumerable#first breaks out of the incorect block when across threads
From:
"nobu (Nobuyoshi Nakada)" <noreply@...>
Date:
2022-04-21 07:02:17 UTC
List:
ruby-core #108328
SXNzdWUgIzE4NjQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku CgoKVGhlcmUgaXMgbm8gd2F5IHRvIHRlbGwgd2hldGhlciB0aGUgdW5kZXJseWluZyBgZWFjaGAg bWV0aG9kIGlzIGJyb2tlbiBvciBleGl0ZWQgZ2VudGx5LgpJIHRoaW5rIHRoYXQgeW91ciBQUiB3 b3VsZCBiZSBiZXR0ZXIgdGhhbiB0aGUgY3VycmVudC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KQnVnICMxODY0OTogRW51bWVyYWJsZSNmaXJzdCBicmVha3Mgb3V0 IG9mIHRoZSBpbmNvcmVjdCBibG9jayB3aGVuIGFjcm9zcyB0aHJlYWRzCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xODY0OSNjaGFuZ2UtOTczNDkKCiogQXV0aG9yOiBFcmVnb24g KEJlbm9pdCBEYWxvemUpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIHJ1Ynkg LXY6IHJ1YnkgMy4xLjFwMTggKDIwMjItMDItMTggcmV2aXNpb24gNTNmNWZjNDIzNikgW3g4Nl82 NC1saW51eF0KKiBCYWNrcG9ydDogMi42OiBVTktOT1dOLCAyLjc6IFVOS05PV04sIDMuMDogVU5L Tk9XTiwgMy4xOiBVTktOT1dOCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KYGBgcnVieQpkZWYgc3luY2hyb25pemUKICB5aWVsZAplbmQKCmRlZiBleGVjdXRlKHRhc2sp CiAgc3VjY2VzcyA9IHRydWUKICB2YWx1ZSA9IHJlYXNvbiA9IG5pbAogIGVuZF9zeW5jID0gZmFs c2UKCiAgc3luY2hyb25pemUgZG8KICAgIGJlZ2luCiAgICAgIHAgOmJlZm9yZQogICAgICB2YWx1 ZSA9IHRhc2suY2FsbAogICAgICBwIDpuZXZlcl9yZWFjaGVkCiAgICAgIHN1Y2Nlc3MgPSB0cnVl CiAgICByZXNjdWUgU3RhbmRhcmRFcnJvciA9PiBleAogICAgICBwIFs6cmVzY3VlLCBleF0KICAg ICAgcmVhc29uID0gZXgKICAgICAgc3VjY2VzcyA9IGZhbHNlCiAgICBlbmQKCiAgICBlbmRfc3lu YyA9IHRydWUKICAgIHAgOmVuZF9zeW5jCiAgZW5kCgogIHAgOnNob3VsZF9ub3RfcmVhY2hfaGVy ZSEgdW5sZXNzIGVuZF9zeW5jCiAgW3N1Y2Nlc3MsIHZhbHVlLCByZWFzb25dCmVuZAoKZGVmIGZv bwogIFRocmVhZC5uZXcgZG8KICAgIHJlc3VsdCA9IGV4ZWN1dGUoLT4geyB5aWVsZCA0MiB9KQog ICAgcCBbOnJlc3VsdCwgcmVzdWx0XQogIGVuZC5qb2luCmVuZAoKcCBbOmZpcnN0LCB0b19lbnVt KDpmb28pLmZpcnN0XQpgYGAKClRoaXMgY29kZSBzaG91bGQgcmFpc2UgTG9jYWxKdW1wRXJyb3Ig KGFuZCB0aGF0IHNob3VsZCBnZXQgYHJlc2N1ZWAnZCkgYmVjYXVzZSBFbnVtZXJhYmxlI2ZpcnN0 IGNhbid0IGJyZWFrL3JldHVybiBhY3Jvc3MgdGhyZWFkcy4KQnV0IGluc3RlYWQsIGl0IHNlZW1z IHRvIGJyZWFrIG91dCBvZiB0aGUgYmxvY2sgZ2l2ZW4gdG8gYHN5bmNocm9uaXplYCwgd2hpY2gg aXMgY2xlYXJseSB3cm9uZy4KVGhhdCBjYXNlIGlzIHNob3duIGFzIGA6c2hvdWxkX25vdF9yZWFj aF9oZXJlIWAuCgpSZXN1bHRzOgpgYGAKcnVieSAzLjAuM3AxNTcgKDIwMjEtMTEtMjQgcmV2aXNp b24gM2ZiN2QyY2FkYykgW3g4Nl82NC1saW51eF0KOmJlZm9yZQo6c2hvdWxkX25vdF9yZWFjaF9o ZXJlIQpbOnJlc3VsdCwgW3RydWUsIG5pbCwgbmlsXV0KWzpmaXJzdCwgNDJdCgpydWJ5IDMuMS4x cDE4ICgyMDIyLTAyLTE4IHJldmlzaW9uIDUzZjVmYzQyMzYpIFt4ODZfNjQtbGludXhdCjpiZWZv cmUKOnNob3VsZF9ub3RfcmVhY2hfaGVyZSEKWzpyZXN1bHQsIFt0cnVlLCBuaWwsIG5pbF1dCls6 Zmlyc3QsIDQyXQpgYGAKCkNSdWJ5ICgzLjAgYW5kIDMuMSkgcHJpbnQgYDpzaG91bGRfbm90X3Jl YWNoX2hlcmUhYCwgd2hpY2ggaXMgYSBzZW1hbnRpYyBidWcsIGlmIHdlIGdldCB0byB0aGUgZW5k IG9mIGBleGVjdXRlYCB3ZSBzaG91bGQgaGF2ZSBnb3R0ZW4gdG8gdGhlIGVuZCBvZiB0aGUgYmxv Y2sgZ2l2ZW4gdG8gc3luY2hyb25pemUuCgpUaGlzIGlzIHJlbGF0ZWQgdG8gIzE4NDc0IGFuZCBo dHRwczovL2dpdGh1Yi5jb20vcnVieS1jb25jdXJyZW5jeS9jb25jdXJyZW50LXJ1YnkvaXNzdWVz LzkzMS4KCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxt YWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJl Pgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVi eS1jb3JlPgo=