[ruby-core:108296] [Ruby master Bug#18649] Enumerable#first breaks out of the incorect block when across threads
From:
"jeremyevans0 (Jeremy Evans)" <noreply@...>
Date:
2022-04-19 17:24:30 UTC
List:
ruby-core #108296
SXNzdWUgIzE4NjQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh bnMpLgoKCm5vYnUgKE5vYnV5b3NoaSBOYWthZGEpIHdyb3RlIGluICNub3RlLTM6Cj4gamVyZW15 ZXZhbnMwIChKZXJlbXkgRXZhbnMpIHdyb3RlIGluICNub3RlLTI6Cj4gPiBXaXRoIHRoZSBibG9j ayB1bmNvbW1lbnRlZCwgdGhlIHlpZWxkaW5nIHRocmVhZCByYWlzZXMgTG9jYWxKdW1wRXJyb3Is IGJ1dCB0aGUgY2FsbGluZyB0aHJlYWQgZ2V0cyB0aGUgeWllbGRlZCB2YWx1ZSB3aXRob3V0IGFu IGV4Y2VwdGlvbi4KPiAKPiBJc24ndCBpdCBuYXR1cmFsIGJlY2F1c2UgdGhlIHRlc3QgY29kZSBy ZXNjdWVzIGJ1dCBkb2Vzbid0IHJlLXJhaXNlPwoKSSB0aGluayB0aGUgYmVoYXZpb3Igb2YgcmFp c2luZyBMb2NhbEp1bXBFcnJvciBpcyBuYXR1cmFsIGZvciB0aGUgeWllbGRpbmcgdGhyZWFkICh0 aGUgeWllbGRpbmcgdGhyZWFkIGlzIHRoZSBvbmUgdGhhdCByZXNjdWVzIGJ1dCBkb2Vzbid0IHJl LXJhaXNlKS4gIFdoYXQgSSdtIG5vdCBzdXJlIGFib3V0IGlzIHdoZXRoZXIgdGhlIGNhbGxpbmcg dGhyZWFkIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIGdldCB0aGUgdmFsdWUgZm9yIGEgY3Jvc3Mt dGhyZWFkIHlpZWxkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpC dWcgIzE4NjQ5OiBFbnVtZXJhYmxlI2ZpcnN0IGJyZWFrcyBvdXQgb2YgdGhlIGluY29yZWN0IGJs b2NrIHdoZW4gYWNyb3NzIHRocmVhZHMKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVz LzE4NjQ5I2NoYW5nZS05NzMxNgoKKiBBdXRob3I6IEVyZWdvbiAoQmVub2l0IERhbG96ZSkKKiBT dGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogcnVieSAtdjogcnVieSAzLjEuMXAxOCAo MjAyMi0wMi0xOCByZXZpc2lvbiA1M2Y1ZmM0MjM2KSBbeDg2XzY0LWxpbnV4XQoqIEJhY2twb3J0 OiAyLjY6IFVOS05PV04sIDIuNzogVU5LTk9XTiwgMy4wOiBVTktOT1dOLCAzLjE6IFVOS05PV04K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgYGBydWJ5CmRlZiBzeW5j aHJvbml6ZQogIHlpZWxkCmVuZAoKZGVmIGV4ZWN1dGUodGFzaykKICBzdWNjZXNzID0gdHJ1ZQog IHZhbHVlID0gcmVhc29uID0gbmlsCiAgZW5kX3N5bmMgPSBmYWxzZQoKICBzeW5jaHJvbml6ZSBk bwogICAgYmVnaW4KICAgICAgcCA6YmVmb3JlCiAgICAgIHZhbHVlID0gdGFzay5jYWxsCiAgICAg IHAgOm5ldmVyX3JlYWNoZWQKICAgICAgc3VjY2VzcyA9IHRydWUKICAgIHJlc2N1ZSBTdGFuZGFy ZEVycm9yID0+IGV4CiAgICAgIHAgWzpyZXNjdWUsIGV4XQogICAgICByZWFzb24gPSBleAogICAg ICBzdWNjZXNzID0gZmFsc2UKICAgIGVuZAoKICAgIGVuZF9zeW5jID0gdHJ1ZQogICAgcCA6ZW5k X3N5bmMKICBlbmQKCiAgcCA6c2hvdWxkX25vdF9yZWFjaF9oZXJlISB1bmxlc3MgZW5kX3N5bmMK ICBbc3VjY2VzcywgdmFsdWUsIHJlYXNvbl0KZW5kCgpkZWYgZm9vCiAgVGhyZWFkLm5ldyBkbwog ICAgcmVzdWx0ID0gZXhlY3V0ZSgtPiB7IHlpZWxkIDQyIH0pCiAgICBwIFs6cmVzdWx0LCByZXN1 bHRdCiAgZW5kLmpvaW4KZW5kCgpwIFs6Zmlyc3QsIHRvX2VudW0oOmZvbykuZmlyc3RdCmBgYAoK VGhpcyBjb2RlIHNob3VsZCByYWlzZSBMb2NhbEp1bXBFcnJvciAoYW5kIHRoYXQgc2hvdWxkIGdl dCBgcmVzY3VlYCdkKSBiZWNhdXNlIEVudW1lcmFibGUjZmlyc3QgY2FuJ3QgYnJlYWsvcmV0dXJu IGFjcm9zcyB0aHJlYWRzLgpCdXQgaW5zdGVhZCwgaXQgc2VlbXMgdG8gYnJlYWsgb3V0IG9mIHRo ZSBibG9jayBnaXZlbiB0byBgc3luY2hyb25pemVgLCB3aGljaCBpcyBjbGVhcmx5IHdyb25nLgpU aGF0IGNhc2UgaXMgc2hvd24gYXMgYDpzaG91bGRfbm90X3JlYWNoX2hlcmUhYC4KClJlc3VsdHM6 CmBgYApydWJ5IDMuMC4zcDE1NyAoMjAyMS0xMS0yNCByZXZpc2lvbiAzZmI3ZDJjYWRjKSBbeDg2 XzY0LWxpbnV4XQo6YmVmb3JlCjpzaG91bGRfbm90X3JlYWNoX2hlcmUhCls6cmVzdWx0LCBbdHJ1 ZSwgbmlsLCBuaWxdXQpbOmZpcnN0LCA0Ml0KCnJ1YnkgMy4xLjFwMTggKDIwMjItMDItMTggcmV2 aXNpb24gNTNmNWZjNDIzNikgW3g4Nl82NC1saW51eF0KOmJlZm9yZQo6c2hvdWxkX25vdF9yZWFj aF9oZXJlIQpbOnJlc3VsdCwgW3RydWUsIG5pbCwgbmlsXV0KWzpmaXJzdCwgNDJdCmBgYAoKQ1J1 YnkgKDMuMCBhbmQgMy4xKSBwcmludCBgOnNob3VsZF9ub3RfcmVhY2hfaGVyZSFgLCB3aGljaCBp cyBhIHNlbWFudGljIGJ1ZywgaWYgd2UgZ2V0IHRvIHRoZSBlbmQgb2YgYGV4ZWN1dGVgIHdlIHNo b3VsZCBoYXZlIGdvdHRlbiB0byB0aGUgZW5kIG9mIHRoZSBibG9jayBnaXZlbiB0byBzeW5jaHJv bml6ZS4KClRoaXMgaXMgcmVsYXRlZCB0byAjMTg0NzQgYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9y dWJ5LWNvbmN1cnJlbmN5L2NvbmN1cnJlbnQtcnVieS9pc3N1ZXMvOTMxLgoKCgotLSAKaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVx dWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVi eS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==