[ruby-core:118666] [Ruby master Feature#20646] Improve Socket.tcp
From:
"shioimm (Misaki Shioi) via ruby-core" <ruby-core@...>
Date:
2024-07-23 00:54:57 UTC
List:
ruby-core #118666
SXNzdWUgIzIwNjQ2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2hpb2ltbSAoTWlzYWtpIFNoaW9pKS4N Cg0KDQpUaGUgUFIgZm9yIHRoaXMgaXNzdWUgaXMgYEltcHJvdmUgU29ja2V0LnRjcGAgaHR0cHM6 Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzExMTg3IC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMjA2NDY6IEltcHJvdmUgU29ja2V0LnRj cA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNjQ2I2NoYW5nZS0xMDkxOTIN Cg0KKiBBdXRob3I6IHNoaW9pbW0gKE1pc2FraSBTaGlvaSkNCiogU3RhdHVzOiBPcGVuDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUaGlzIGlzIGEgcHJvcG9zZWQg aW1wcm92ZW1lbnQgdG8gYFNvY2tldC50Y3BgLCB3aGljaCBoYXMgaW1wbGVtZW50ZWQgSGFwcHkg RXllYmFsbHMgdmVyc2lvbiAyIChSRkM4MzA1KSBpbiBbUFI5Mzc0XShodHRwczovL2dpdGh1Yi5j b20vcnVieS9ydWJ5L3B1bGwvOTM3NCkuDQoNCjEuIEJhY2tncm91bmQNCkkgaW1wbGVtZW50ZWQg SGFwcHkgRXllYmFsbHMgdmVyc2lvbiAyIChIRXYyKSBmb3IgU29ja2V0LnRjcCBpbiBQUjkzNzQs IGJ1dCBzZXZlcmFsIGlzc3VlcyBoYXZlIGJlZW4gaWRlbnRpZmllZDoNCg0KLSBgSU8uc2VsZWN0 YCB3YWl0cyBmb3IgbmFtZSByZXNvbHV0aW9uIG9yIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBp biB2NDZ3LCBidXQgaXQgZG9lcyBub3QgY29uc2lkZXIgdGhlIGNhc2Ugd2hlcmUgYm90aCBldmVu dHMgb2NjdXIgc2ltdWx0YW5lb3VzbHkgd2hlbiBpdCByZXR1cm5zIGEgdmFsdWUuDQogIC0gSW4g dGhpcyBjYXNlLCBTb2NrZXQudGNwIGNhbiBvbmx5IGNhcHR1cmUgb25lIGV2ZW50IGFuZCBuZWVk cyB0byBleGVjdXRlIGFuIHVubmVjZXNzYXJ5IGxvb3AgdG8gY2FwdHVyZSB0aGUgb3RoZXIgb25l LCBjYWxsaW5nIGBJTy5zZWxlY3RgIG9uZSBleHRyYSB0aW1lLg0KLSBgSU8uc2VsZWN0YCB3YWl0 cyBmb3IgYm90aCBJUHY2L0lQdjQgbmFtZSByZXNvbHV0aW9uIChpbiBzdGFydCksIGJ1dCB3aGVu IGl0IHJldHVybnMgYSB2YWx1ZSwgaXQgZG9lc24ndCBjb25zaWRlciB0aGUgY2FzZSB3aGVyZSBu YW1lIHJlc29sdXRpb24gZm9yIGJvdGggYWRkcmVzcyBmYW1pbGllcyBpcyBjb21wbGV0ZS4NCiAg LSBJbiB0aGlzIGNhc2UsIGBTb2NrZXQudGNwYCBjYW4gb25seSBvYnRhaW4gdGhlIGFkZHJlc3Nl cyBvZiBvbmUgYWRkcmVzcyBmYW1pbHkgYW5kIG5lZWRzIHRvIGV4ZWN1dGUgYW4gdW5uZWNlc3Nh cnkgbG9vcCBvYnRhaW4gdGhlIG90aGVyIGFkZHJlc3NlcywgY2FsbGluZyBgSU8uc2VsZWN0YCBv bmUgZXh0cmEgdGltZS4NCi0gVGhlIGNvbnNpZGVyYXRpb24gZm9yIGBjb25uZWN0X3RpbWVvdXRg IHdhcyBpbnN1ZmZpY2llbnQuIEFmdGVyIGluaXRpYXRpbmcgb25lIG9yIG1vcmUgY29ubmVjdGlv bnMsIGl0IHJhaXNlcyBhICd1c2VyIHNwZWNpZmllZCB0aW1lb3V0JyBhZnRlciB0aGUgYGNvbm5l Y3RfdGltZW91dGAgcGVyaW9kIGV2ZW4gaWYgdGhlcmUgd2VyZSBhZGRyZXNzZXMgdGhhdCBoYXZl IGJlZW4gcmVzb2x2ZWQgYW5kIGhhdmUgbm90IHlldCB0cmllZCB0byBjb25uZWN0Lg0KLSBJdCBk b2VzIG5vdCByZXRyeSB3aXRoIGFub3RoZXIgYWRkcmVzcyBpbiBjYXNlIG9mIGEgY29ubmVjdGlv biBmYWlsdXJlLg0KLSBJdCBleGVjdXRlcyB1bm5lY2Vzc2FyeSBzdGF0ZSB0cmFuc2l0aW9ucyBl dmVuIHdoZW4gYW4gSVAgYWRkcmVzcyBpcyBwYXNzZWQgYXMgdGhlIGBob3N0YCBhcmd1bWVudC4N Ci0gVGhlIHJlZ2V4IGZvciBJUCBhZGRyZXNzZXMgZGlkIG5vdCBjb3JyZWN0bHkgc3BlY2lmeSB0 aGUgc3RhcnQgYW5kIGVuZC4NCg0KMi4gUHJvcG9zYWwgJiBPdXRjb21lDQpUbyBvdmVyY29tZSB0 aGUgYWZvcmVtZW50aW9uZWQgaXNzdWVzLCB0aGlzIFBSIGludHJvZHVjZXMgdGhlIGZvbGxvd2lu ZyBjaGFuZ2VzOg0KDQotIFByZXZpb3VzbHksIGVhY2ggbG9vcCBpdGVyYXRpb24gcmVwcmVzZW50 ZWQgYSBzaW5nbGUgc3RhdGUgdHJhbnNpdGlvbi4gVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIGV4 ZWN1dGUgYWxsIHByb2Nlc3NlcyB0aGF0IG1lZXQgdGhlIGV4ZWN1dGlvbiBjb25kaXRpb25zIHdp dGhpbiBhIHNpbmdsZSBsb29wIGl0ZXJhdGlvbi4NCiAgLSBUaGlzIHByZXZlbnRzIHVubmVjZXNz YXJ5IHJlcGVhdGVkIGxvb3BzIGFuZCBjYWxsaW5nIGBJTy5zZWxlY3RgDQotIEludHJvZHVjZWQg bG9naWMgdG8gZGV0ZXJtaW5lIHRoZSB0aW1lb3V0IHZhbHVlIHNldCBmb3IgYElPLnNlbGVjdGAu IER1cmluZyB0aGUgUmVzb2x1dGlvbiBEZWxheSBhbmQgQ29ubmVjdGlvbiBBdHRlbXB0IERlbGF5 LCB0aGUgdXNlci1zcGVjaWZpZWQgdGltZW91dCBpcyBpZ25vcmVkLiBPdGhlcndpc2UsIHRoZSB0 aW1lb3V0IHZhbHVlIGlzIHNldCB0byB0aGUgbGFyZ2VyIG9mIGByZXNvbHZfdGltZW91dGAgYW5k IGBjb25uZWN0X3RpbWVvdXRgLg0KICAtIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBgY29ubmVjdF90 aW1lb3V0YCBpcyBvbmx5IGRldGVjdGVkIGFmdGVyIGF0dGVtcHRpbmcgdG8gY29ubmVjdCB0byBh bGwgcmVzb2x2ZWQgYWRkcmVzc2VzLg0KLSBSZXRyeSB3aXRoIGFub3RoZXIgYWRkcmVzcyBpbiBj YXNlIG9mIGEgY29ubmVjdGlvbiBmYWlsdXJlLg0KICAtIFRoaXMgcHJldmVudHMgdW5uZWNlc3Nh cnkgcmVwZWF0ZWQgbG9vcHMgdXBvbiBjb25uZWN0aW9uIGZhaWx1cmUuDQotIENhbGwgYHRjcF93 aXRob3V0X2Zhc3RfZmFsbGJhY2tgIHdoZW4gYW4gSVAgYWRkcmVzcyBpcyBwYXNzZWQgYXMgdGhl IGhvc3QgYXJndW1lbnQuDQogIC0gVGhpcyBwcmV2ZW50cyB1bm5lY2Vzc2FyeSBzdGF0ZSB0cmFu c2l0aW9ucyB3aGVuIGFuIElQIGFkZHJlc3MgaXMgcGFzc2VkLg0KLSBGaXhlZCByZWdleCBmb3Ig SVAgYWRkcmVzc2VzLg0KDQpBZGRpdGlvbmFsbHksIHRoZSBjb2RlIGhhcyBiZWVuIHJlZHVjZWQg Ynkgb3ZlciAxMDAgbGluZXMsIGFuZCByZWR1bmRhbmN5IGhhcyBiZWVuIG1pbmltaXplZCwgd2hp Y2ggaXMgZXhwZWN0ZWQgdG8gaW1wcm92ZSByZWFkYWJpbGl0eS4NCg0KMy4gUGVyZm9ybWFuY2UN Ck5vIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGNoYW5nZXMgd2VyZSBvYnNlcnZlZCBpbiB0aGUg aGFwcHkgY2FzZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBpbXByb3ZlbWVudC4NCkhvd2V2ZXIsIGlt cHJvdmVtZW50cyBpbiBzdGF0ZSB0cmFuc2l0aW9uIGRlZmljaWVuY2llcyBhcmUgZXhwZWN0ZWQg dG8gZW5oYW5jZSBwZXJmb3JtYW5jZSBpbiBlZGdlIGNhc2VzLg0KDQpgYGBydWJ5DQpyZXF1aXJl ICdzb2NrZXQnDQpyZXF1aXJlICdiZW5jaG1hcmsnDQoNCkJlbmNobWFyay5ibWJtIGRvIHx4fA0K ICB4LnJlcG9ydCgnZmFzdF9mYWxsYmFjazogdHJ1ZScpIGRvDQogICAgMzAudGltZXMgeyBTb2Nr ZXQudGNwKCJ3d3cucnVieS1sYW5nLm9yZyIsIDgwKSB9DQogIGVuZA0KDQogIHgucmVwb3J0KCdm YXN0X2ZhbGxiYWNrOiBmYWxzZScpIGRvICMgUnVieTMuM+aZgueCueOBqOWQjOOBmA0KICAgIDMw LnRpbWVzIHsgU29ja2V0LnRjcCgid3d3LnJ1YnktbGFuZy5vcmciLCA4MCwgZmFzdF9mYWxsYmFj azogZmFsc2UpIH0NCiAgZW5kDQplbmQNCmBgYA0KDQpCZWZvcmU6DQoNCmBgYA0Kfi9zL2J1aWxk IOKdr+Kdr+KdryAuLi9pbnN0YWxsL2Jpbi9ydWJ5IC4uL3J1YnkvdGVzdC5yYg0KDQogICAgICAg ICAgICAgICAgICAgICAgICAgICB1c2VyICAgICBzeXN0ZW0gICAgICB0b3RhbCAgICAgICAgcmVh bA0KZmFzdF9mYWxsYmFjazogdHJ1ZSAgICAwLjAyMTMxNSAgIDAuMDQwNzIzICAgMC4wNjIwMzgg KCAgMC41MDQ4NjYpDQpmYXN0X2ZhbGxiYWNrOiBmYWxzZSAgIDAuMDA3NTUzICAgMC4wMjYyNDgg ICAwLjAzMzgwMSAoICAwLjUzMzIxMSkNCmBgYA0KDQpBZnRlcjoNCg0KYGBgDQp+L3MvYnVpbGQg 4p2v4p2v4p2vIC4uL2luc3RhbGwvYmluL3J1YnkgLi4vcnVieS90ZXN0LnJiDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZXIgICAgIHN5c3RlbSAgICAgIHRvdGFsICAgICAgICByZWFs DQpmYXN0X2ZhbGxiYWNrOiB0cnVlICAgIDAuMDIzMDgxICAgMC4wNDA1MjUgICAwLjA2MzYwNiAo ICAwLjQwNjIxOSkNCmZhc3RfZmFsbGJhY2s6IGZhbHNlICAgMC4wMDczMDIgICAwLjAyNTUxNSAg IDAuMDMyODE3ICggIDAuNDE4NjgwKQ0KYGBgDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnLw0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcK IFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1Ynkt bGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWls bWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=