[ruby-core:118557] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"ko1 (Koichi Sasada) via ruby-core" <ruby-core@...>
Date:
2024-07-11 10:04:09 UTC
List:
ruby-core #118557
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4NCg0K DQpPbiBkZXYtbWVldGluZywgdGhlcmUgaXMgbm8gb2JqZWN0aW9uIG9uIGBHQy5jb25maWcoKWAu DQpDb3VsZCB5b3Ugd3JpdGUgdGhlIG1vcmUgZG9jIG9mIGl0PyBGb3IgZXhhbXBsZSwgcmV0dXJu aW5nIHZhbHVlIGlzIHVuY2xlYXIuDQoNCkFib3V0IGtleXM6DQoNCiogTWF0eiBwcmVmZXIgdG8g YWRkIHByZWZpeCBmb3IgdGhlIGtleXMsIGxpa2UgYEdDLmNvbmZpZyhnZW5nY19mdWxsX21hcms6 IHRydWUpYC4NCiogSSB0aGluayBgR0MuY29uZmlnKGdlbmdjX2Z1bGxfbWFyazogdHJ1ZSlgIGlz IG5vdCBjbGVhciBhbHdheXMgZG8gZnVsbCBtYXJraW5nIG9yIG5vdCAoYGdlbmdjX2Z1bGxfbWFy azogZmFsc2VgIGlzIGNsZWFyIHRoYXQgZnVsbCBtYXJraW5nIGlzIHByb2hpYml0ZWQpLiBgZ2Vu Z2NfYWxsb3dfZnVsbF9tYXJrOiB0cnVlL2ZhbHNlYD8gdG9vIG11Y2g/DQoNCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMjA0NDM6IEFsbG93IE1h am9yIEdDJ3MgdG8gYmUgZGlzYWJsZWQNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8yMDQ0MyNjaGFuZ2UtMTA5MDgwDQoNCiogQXV0aG9yOiBlaWdodGJpdHJhcHRvciAoTWF0dGhl dyBWYWxlbnRpbmUtSG91c2UpDQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KW1tHaXRodWIgUFIgIzEwNTk4XV0oaHR0cHM6Ly9naXRodWIu Y29tL3J1YnkvcnVieS9wdWxsLzEwNTk4KQ0KDQojIyBCYWNrZ3JvdW5kDQoNClJ1YnkncyBHQyBy dW5uaW5nIGR1cmluZyBSYWlscyByZXF1ZXN0cyBjYW4gaGF2ZSBuZWdhdGl2ZSBpbXBhY3RzIG9u IGN1cnJlbnRseQ0KcnVubmluZyByZXF1ZXN0cywgY2F1c2luZyBhcHBsaWNhdGlvbnMgdG8gaGF2 ZSBoaWdoIHRhaWwtbGF0ZW5jeS4NCg0KQSB0ZWNobmlxdWUgdG8gbWl0aWdhdGUgdGhpcyBoaWdo IHRhaWwtbGF0ZW5jeSBpcyBPdXQtb2YtYmFuZCBHQyAoT09CR0MpLiBUaGlzDQppcyBiYXNpY2Fs bHkgd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1biB3aXRoIEdDIGRpc2FibGVkLCBhbmQgdGhl biBHQyBpcw0KZXhwbGljaXRseSBzdGFydGVkIGFmdGVyIGVhY2ggcmVxdWVzdCwgb3Igd2hlbiBu byByZXF1ZXN0cyBhcmUgaW4gcHJvZ3Jlc3MuDQoNClRoaXMgY2FuIHJlZHVjZSB0aGUgdGFpbCBs YXRlbmN5LCBidXQgYWxzbyBpbnRyb2R1Y2VzIHByb2JsZW1zIG9mIGl0cyBvd24uIExvbmcNCkdD IHBhdXNlcyBhZnRlciBlYWNoIHJlcXVlc3QgcmVkdWNlIHRocm91Z2hwdXQuIFRoaXMgaXMgbW9y ZSBwcm9ub3VuY2VkIG9uDQp0aHJlYWRpbmcgc2VydmVycyBsaWtlIFB1bWEgYmVjYXVzZSBhbGwg dGhlIHRocmVhZHMgaGF2ZSB0byBmaW5pc2ggcHJvY2Vzc2luZw0KdXNlciByZXF1ZXN0cyBhbmQg YmUgInBhdXNlZCIgYmVmb3JlIE9PQkdDIGNhbiBiZSB0cmlnZ2VyZWQuDQoNClRoaXMgdGhyb3Vn aHB1dCBkZWNyZWFzZSBoYXBwZW5zIGZvciBhIGNvdXBsZSBvZiByZWFzb25zOg0KDQoxLiBUaGVy ZSBhcmUgZmV3IGhldXJpc3RpY3MgYXZhaWxhYmxlIGZvciB1c2VycyB0byBkZXRlcm1pbmUgd2hl biBHQyBzaG91bGQgcnVuLA0KdGhpcyBtZWFucyB0aGF0IGluIE9PQkdDIHNjZW5hcmlvcywgaXQn cyBwb3NzaWJsZSB0aGF0IG1ham9yIEdDJ3MgYXJlIGJlaW5nIHJ1bg0KbW9yZSB0aGFuIG5lY2Vz c2FyeS4gIDIuIFRoZSBsYWNrIG9mIGFueSBHQyBkdXJpbmcgYSByZXF1ZXN0IG1lYW5zIHRoYXQg bG90cyBvZg0KZ2FyYmFnZSBvYmplY3RzIGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBub3QgY2xlYW5l ZCB1cCwgc28gdGhlIHByb2Nlc3MgaXMgdXNpbmcNCm1vcmUgbWVtb3J5IHRoYW4gaXQgc2hvdWxk IC0gcmVxdWlyaW5nIG1ham9yIEdDJ3MgcnVuIGFzIHBhcnQgb2YgT09CR0MgdG8gZG8NCm1vcmUg d29yayBhbmQgdGhlcmVmb3JlIHRha2UgbW9yZSB0aW1lLg0KDQpUaGlzIHRpY2tldCBhdHRlbXB0 cyB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcyBieToNCg0KMS4gUHJvdmlkZSBgR0MuZGlzYWJsZV9t YWpvcmAgYW5kIGl0cyBhbnRvbnltIGBHQy5lbmFibGVfbWFqb3JgIHRvIGRpc2FibGUgYW5kDQpl bmFibGUgb25seSBtYWpvciBHQyAyLiBQcm92aWRlIGBHQy5uZWVkc19tYWpvcj9gIGFzIGEgYmFz aWMgaGV1cmlzdGljIGFsbG93aW5nDQp1c2VycyB0byB0ZWxsIHdoZW4gUnVieSBzaG91bGQgcnVu IGEgTWFqb3IgR0MuDQoNClRoZXNlIGlkZWFzIHdlcmUgb3JpZ2luYWxseSBwcm9wb3NlZCBieSBA a28xIGFuZCBAYnlyb290IGluIFt0aGlzIHJhaWxzDQppc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29t L3JhaWxzL3JhaWxzL2lzc3Vlcy81MDQ0OSkNCg0KRGlzYWJsaW5nIEdDIG1ham9yJ3Mgd291bGQg c3RpbGwgYWxsb3cgbWlub3IgR0MncyB0byBydW4gZHVyaW5nIHRoZSByZXF1ZXN0LA0KYXZvaWRp bmcgdGhlIGJhbGxvb25pbmcgbWVtb3J5IHVzYWdlIGNhdXNlZCBieSBub3QgcnVubmluZyBHQyBh dCBhbGwsIGFuZA0KcmVkdWNpbmcgdGhlIHRpbWUgdGhhdCBhIG1ham9yIHRha2VzIHdoZW4gd2Ug ZG8gcnVuIGl0LCBiZWNhdXNlIHRoZSBudXJzZXJ5DQpvYmplY3RzIGhhdmUgYmVlbiBjbGVhbmVk IHVwIGR1cmluZyB0aGUgcmVxdWVzdCBhbHJlYWR5IHNvIHRoZXJlIGlzIGxlc3Mgd29yaw0KZm9y IGEgbWFqb3IgR0MgdG8gZG8uDQoNClRoaXMgY2FuIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0 aCBgR0MubmVlZHNfbWFqb3I/YCB0byBzZWxlY3RpdmVseSBydW4gYW4NCk9PQkdDIG9ubHkgd2hl biBuZWNlc3NhcnkNCg0KIyMgSW1wbGVtZW50YXRpb24NCg0KVGhpcyBQUiBhZGRzIDMgbmV3IG1l dGhvZHMgdG8gdGhlIGBHQ2AgbW9kdWxlDQoNCi0gYEdDLmRpc2FibGVfbWFqb3JgIFRoaXMgcHJl dmVudHMgbWFqb3IgR0MncyBmcm9tIHJ1bm5pbmcgYXV0b21hdGljYWxseS4gSXQNCiAgZG9lcyBu b3QgcmVzdHJpY3QgbWlub3JzLiBXaGVuIGBvYmpzcGFjZS0+cmdlbmdjLm5lZWRfbWFqb3JfZ2Ng IGlzIHNldCBhbmQgYQ0KICBHQyBpcyBydW4sIGluc3RlYWQgb2YgcnVubmluZyBhIG1ham9yLCBu ZXcgaGVhcCBwYWdlcyB3aWxsIGJlIGFsbG9jYXRlZCBhbmQgYQ0KICBtaW5vciBydW4gaW5zdGVh ZC4gYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2Agd2lsbCByZW1haW4gc2V0IHVudGls IGENCiAgbWFqb3IgaXMgbWFudWFsbHkgcnVuLiBJZiBhIG1ham9yIGlzIG5vdCBtYW51YWxseSBy dW4gdGhlbiB0aGUgcHJvY2VzcyB3aWxsDQogIGV2ZW50dWFsbHkgcnVuIG91dCBvZiBtZW1vcnku DQogIA0KICBXaGVuIG1ham9yIEdDJ3MgYXJlIGRpc2FibGVkLCBvYmplY3QgcHJvbW90aW9uIGlz IGRpc2FibGVkLiBUaGF0IGlzLCBubw0KICBvYmplY3RzIHdpbGwgaW5jcmVtZW50IHRoZWlyIGFn ZXMgZHVyaW5nIGEgbWlub3IgR0MuIFRoaXMgaXMgdG8gYXR0ZW1wdCB0bw0KICBtaW5pbWlzZSBo ZWFwIGdyb3d0aCBkdXJpbmcgdGhlIHBlcmlvZCBiZXR3ZWVuIG1ham9yIEdDJ3MsIGJ5IHJlc3Ry aWN0aW5nIHRoZQ0KICBudW1iZXIgb2Ygb2xkLWdlbiBvYmplY3RzIHRoYXQgd2lsbCByZW1haW4g dW5jb25zaWRlcmVkIGJ5IHRoZSBHQyB1bnRpbCB0aGUNCiAgbmV4dCBtYWpvci4NCiAgDQogIFdo ZW4gYEdDLnN0YXJ0YCBpcyBydW4sIHRoZW4gbWFqb3IgR0MncyB3aWxsIGJlIGVuYWJsZWQsIGEg R0MgdHJpZ2dlcmVkIHdpdGgNCiAgdGhlIG9wdGlvbnMgcGFzc2VkIHRvIGBHQy5zdGFydGAsIGFu ZCB0aGVuIGBkaXNhYmxlX21ham9yYCB3aWxsIGJlIHNldCB0byB0aGUNCiAgc3RhdGUgaXQgd2Fz IGluIGJlZm9yZSBgR0Muc3RhcnRgIHdhcyBjYWxsZWQuDQogIA0KLSBgR0MuZW5hYmxlX21ham9y YCBUaGlzIHNpbXBseSB1bnNldHMgdGhlIGJpdCBwcmV2ZW50aW5nIG1ham9yIEdDJ3MuIFRoaXMg d2lsbA0KICByZXZlcnQgdGhlIEdDIHRvIG5vcm1hbCBnZW5lcmF0aW9uYWwgYmVoYXZpb3VyLiBF dmVyeXRoaW5nIGJlaGF2ZXMgYXMgZGVmYXVsdA0KICBhZ2Fpbi4NCg0KLSBgR0MubmVlZHNfbWFq b3I/YCBUaGlzIGV4cG9zZXMgdGhlIHZhbHVlIG9mIGBvYmpzcGFjZS0+cmdlbmdjLm5lZWRfbWFq b3JfZ2NgDQogIHRvIHRoZSB1c2VyIGxldmVsIEFQSS4gVGhpcyBpcyBhbHJlYWR5IGV4cG9zZWQg aW4NCiAgYEdDLmxhdGVzdF9nY19pbmZvWzpuZWVkX21ham9yX2J5XWAgYnV0IEkgZmVsdCB0aGF0 IGEgc2ltcGxlciBpbnRlcmZhY2Ugd291bGQNCiAgbWFrZSB0aGlzIGVhc2llciB0byB1c2UgYW5k IHJlc3VsdCBpbiBtb3JlIHJlYWRhYmxlIGNvZGUuIGVnLg0KICANCmBgYA0Kb3V0X29mX2JhbmQg ZG8gDQogIEdDLnN0YXJ0IGlmIEdDLm5lZWRzX21ham9yPyAgDQplbmQgDQpgYGANCg0KQmVjYXVz ZSBvYmplY3QgYWdpbmcgaXMgZGlzYWJsZWQgd2hlbiBtYWpvcnMgYXJlIGRpc2FibGVkIGl0IGlz IHJlY29tbWVuZGVkIHRvDQp1c2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGBQcm9jZXNzLndh cm11cGAsIHdoaWNoIHdpbGwgcHJlcGFyZSB0aGUgaGVhcCBieQ0KcnVubmluZyBhIG1ham9yIEdD LCBjb21wYWN0aW5nIHRoZSBoZWFwLCBhbmQgcHJvbW90aW5nIGV2ZXJ5IHJlbWFpbmluZyBvYmpl Y3QgdG8NCm9sZC1nZW4uIFRoaXMgZW5zdXJlcyB0aGF0IG1pbm9yIEdDJ3MgYXJlIHJ1bm5pbmcg b3ZlciB0aGUgc21hbGxldHMgcG9zc2libGUgc2V0DQpvZiB5b3VuZyBvYmplY3RzIHdoZW4gYEdD LmRpc2FibGVfbWFqb3JgIGlzIHRydWUuDQoNCiMjIEJlbmNobWFya3MNCg0KV2UgcmFuIHNvbWUg dGVzdHMgaW4gcHJvZHVjdGlvbiBvbiBTaG9waWZ5J3MgY29yZSBtb25vbGl0aCBvdmVyIGEgd2Vl a2VuZCBhbmQNCmZvdW5kIHRoYXQ6DQoNCioqTWVhbiB0aW1lIHNwZW50IGluIEdDLCBhcyB3ZWxs IGFzIHA5OS45IGFuZCBwOTkuOTkgR0MgdGltZXMgYXJlIGFsbA0KaW1wcm92ZWQuKiogDQoNCjxp bWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAyMDI0LTA0LTIyIGF0IDE2IDQxIDQ5Ig0K c3JjPSJodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Fzc2V0cy8zMTg2OS82Y2ZmNWIxMS0y ZTIxLTQwYzEtYmI4NC1kOTk0ZTBlMTc5OGQiPg0KDQoqKnA5OSBHQyB0aW1lIGlzIHNsaWdodGx5 IGhpZ2hlci4qKiANCg0KPGltZyB3aWR0aD0iMTAwMCIgYWx0PSJTY3JlZW5zaG90IDIwMjQtMDQt MjIgYXQgMTYgNDQgNTUiDQpzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvYXNzZXRz LzMxODY5L2RjNjQ1Y2JlLTk0OTUtNDZmMC04NDg1LTI0ZTc5MGM0MmYzMiI+DQoNCldlJ3JlIHJ1 bm5pbmcgZmFyIGZld2VyIE9PQkdDIG1ham9yIEdDJ3Mgbm93IHRoYXQgd2UgaGF2ZSBgR0MubmVl ZHNfbWFqb3I/YCB0aGFuDQp3ZSB3ZXJlIGJlZm9yZSwgYW5kIHdlIGJlbGlldmUgdGhhdCB0aGlz IGlzIGNvbnRyaWJ1dGluZyB0byBhIHNsaWdodGx5IGluY3JlYXNlZA0KbnVtYmVyIG9mIG1pbm9y IEdDJ3MuIHJhaXNpbmcgdGhlIHA5OSBzbGlnaHRseS4NCg0KKipBcHAgcmVzcG9uc2UgdGltZXMg YXJlIGFsbCBpbXByb3ZlZCoqDQoNCldlIHNlZSBhIH4yJSByZWR1Y3Rpb24gaW4gYXZlcmFnZSBy ZXNwb25zZSB0aW1lcyB3aGVuIGNvbXBhcmVkIGFnYWluc3RzdGFuZGFyZCBHQyANCih+NyUgcDk5 LCB+MyUgcDk5LjkgYW5kIH40JSBwOTkuOTkpLg0KDQo8aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNj cmVlbnNob3QgMjAyNC0wNC0yMyBhdCAwOSAyNyAxNyIgc3JjPSJodHRwczovL2dpc3QuZ2l0aHVi LmNvbS9hc3NldHMvMzE4NjkvNzBlODFmYTUtNzdiMi00NjlhLTg5NDUtODhiZjhmOGZlZmU5Ij4N Cg0KVGhpcyBkcm9wcyBzbGlnaHRseSB0byBhbiBhIH4xJSByZWR1Y3Rpb24gaW4gYXZlcmFnZSBy ZXNwb25zZSB0aW1lcyB3aGVuIGNvbXBhcmVkDQphZ2FpbnN0IG91ciBub3JtYWwgT09CR0MgYXBw cm9hY2ggICh+NiUgcDk5LCB+MiUgcDk5LjkgYW5kIH4zJSBwOTkuOTkpLg0KDQo8aW1nIHdpZHRo PSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMyBhdCAwOSAyNyAyOSIgc3JjPSJodHRw czovL2dpc3QuZ2l0aHViLmNvbS9hc3NldHMvMzE4NjkvY2JhYTM4MDctMGNkMS00ZGJhLWE1ZTYt YjlkZjkxMDI0ZDczIj4NCg0KDQpFRElUOiB0byBjb3JyZWN0IGEgZm9ybXVsYSBlcnJvciBpbiB0 aGUgb3JpZ2luYWwgQXZlcmFnZSBjaGFydHMsIG51bWJlcnMgdXBkYXRlZC4gDQoNCi0tLUZpbGVz LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkNhcHR1cmUgZOKAmWXMgWNyYW4gMjAy NC0wNC0yMiBhzIAgMTguNDEuNTIucG5nICgyNzkgS0IpDQoNCg0KLS0gDQpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBtbC5ydWJ5LWxhbmcu b3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29yZS1sZWF2ZUBtbC5y dWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1YnktbGFuZy5vcmcv bWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv