[ruby-core:108292] [Ruby master Bug#18649] Enumerable#first breaks out of the incorect block when across threads
From:
"nobu (Nobuyoshi Nakada)" <noreply@...>
Date:
2022-04-19 09:46:11 UTC
List:
ruby-core #108292
SXNzdWUgIzE4NjQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku CgoKamVyZW15ZXZhbnMwIChKZXJlbXkgRXZhbnMpIHdyb3RlIGluICNub3RlLTI6Cj4gV2l0aCB0 aGUgYmxvY2sgdW5jb21tZW50ZWQsIHRoZSB5aWVsZGluZyB0aHJlYWQgcmFpc2VzIExvY2FsSnVt cEVycm9yLCBidXQgdGhlIGNhbGxpbmcgdGhyZWFkIGdldHMgdGhlIHlpZWxkZWQgdmFsdWUgd2l0 aG91dCBhbiBleGNlcHRpb24uCgpJc24ndCBpdCBuYXR1cmFsIGJlY2F1c2UgdGhlIHRlc3QgY29k ZSByZXNjdWVzIGJ1dCBkb2Vzbid0IHJlLXJhaXNlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpCdWcgIzE4NjQ5OiBFbnVtZXJhYmxlI2ZpcnN0IGJyZWFrcyBvdXQg b2YgdGhlIGluY29yZWN0IGJsb2NrIHdoZW4gYWNyb3NzIHRocmVhZHMKaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvaXNzdWVzLzE4NjQ5I2NoYW5nZS05NzMxMwoKKiBBdXRob3I6IEVyZWdvbiAo QmVub2l0IERhbG96ZSkKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogcnVieSAt djogcnVieSAzLjEuMXAxOCAoMjAyMi0wMi0xOCByZXZpc2lvbiA1M2Y1ZmM0MjM2KSBbeDg2XzY0 LWxpbnV4XQoqIEJhY2twb3J0OiAyLjY6IFVOS05PV04sIDIuNzogVU5LTk9XTiwgMy4wOiBVTktO T1dOLCAzLjE6IFVOS05PV04KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpgYGBydWJ5CmRlZiBzeW5jaHJvbml6ZQogIHlpZWxkCmVuZAoKZGVmIGV4ZWN1dGUodGFzaykK ICBzdWNjZXNzID0gdHJ1ZQogIHZhbHVlID0gcmVhc29uID0gbmlsCiAgZW5kX3N5bmMgPSBmYWxz ZQoKICBzeW5jaHJvbml6ZSBkbwogICAgYmVnaW4KICAgICAgcCA6YmVmb3JlCiAgICAgIHZhbHVl ID0gdGFzay5jYWxsCiAgICAgIHAgOm5ldmVyX3JlYWNoZWQKICAgICAgc3VjY2VzcyA9IHRydWUK ICAgIHJlc2N1ZSBTdGFuZGFyZEVycm9yID0+IGV4CiAgICAgIHAgWzpyZXNjdWUsIGV4XQogICAg ICByZWFzb24gPSBleAogICAgICBzdWNjZXNzID0gZmFsc2UKICAgIGVuZAoKICAgIGVuZF9zeW5j ID0gdHJ1ZQogICAgcCA6ZW5kX3N5bmMKICBlbmQKCiAgcCA6c2hvdWxkX25vdF9yZWFjaF9oZXJl ISB1bmxlc3MgZW5kX3N5bmMKICBbc3VjY2VzcywgdmFsdWUsIHJlYXNvbl0KZW5kCgpkZWYgZm9v CiAgVGhyZWFkLm5ldyBkbwogICAgcmVzdWx0ID0gZXhlY3V0ZSgtPiB7IHlpZWxkIDQyIH0pCiAg ICBwIFs6cmVzdWx0LCByZXN1bHRdCiAgZW5kLmpvaW4KZW5kCgpwIFs6Zmlyc3QsIHRvX2VudW0o OmZvbykuZmlyc3RdCmBgYAoKVGhpcyBjb2RlIHNob3VsZCByYWlzZSBMb2NhbEp1bXBFcnJvciAo YW5kIHRoYXQgc2hvdWxkIGdldCBgcmVzY3VlYCdkKSBiZWNhdXNlIEVudW1lcmFibGUjZmlyc3Qg Y2FuJ3QgYnJlYWsvcmV0dXJuIGFjcm9zcyB0aHJlYWRzLgpCdXQgaW5zdGVhZCwgaXQgc2VlbXMg dG8gYnJlYWsgb3V0IG9mIHRoZSBibG9jayBnaXZlbiB0byBgc3luY2hyb25pemVgLCB3aGljaCBp cyBjbGVhcmx5IHdyb25nLgpUaGF0IGNhc2UgaXMgc2hvd24gYXMgYDpzaG91bGRfbm90X3JlYWNo X2hlcmUhYC4KClJlc3VsdHM6CmBgYApydWJ5IDMuMC4zcDE1NyAoMjAyMS0xMS0yNCByZXZpc2lv biAzZmI3ZDJjYWRjKSBbeDg2XzY0LWxpbnV4XQo6YmVmb3JlCjpzaG91bGRfbm90X3JlYWNoX2hl cmUhCls6cmVzdWx0LCBbdHJ1ZSwgbmlsLCBuaWxdXQpbOmZpcnN0LCA0Ml0KCnJ1YnkgMy4xLjFw MTggKDIwMjItMDItMTggcmV2aXNpb24gNTNmNWZjNDIzNikgW3g4Nl82NC1saW51eF0KOmJlZm9y ZQo6c2hvdWxkX25vdF9yZWFjaF9oZXJlIQpbOnJlc3VsdCwgW3RydWUsIG5pbCwgbmlsXV0KWzpm aXJzdCwgNDJdCmBgYAoKQ1J1YnkgKDMuMCBhbmQgMy4xKSBwcmludCBgOnNob3VsZF9ub3RfcmVh Y2hfaGVyZSFgLCB3aGljaCBpcyBhIHNlbWFudGljIGJ1ZywgaWYgd2UgZ2V0IHRvIHRoZSBlbmQg b2YgYGV4ZWN1dGVgIHdlIHNob3VsZCBoYXZlIGdvdHRlbiB0byB0aGUgZW5kIG9mIHRoZSBibG9j ayBnaXZlbiB0byBzeW5jaHJvbml6ZS4KClRoaXMgaXMgcmVsYXRlZCB0byAjMTg0NzQgYW5kIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydWJ5LWNvbmN1cnJlbmN5L2NvbmN1cnJlbnQtcnVieS9pc3N1ZXMv OTMxLgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1h aWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+ CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5 LWNvcmU+Cg==