[ruby-core:117664] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"nateberkopec (Nate Berkopec) via ruby-core" <ruby-core@...>
Date:
2024-04-23 22:43:06 UTC
List:
ruby-core #117664
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbmF0ZWJlcmtvcGVjIChOYXRlIEJlcmtv cGVjKS4NCg0KDQpSZWdhcmRpbmcgdGhlIGludGVyZmFjZToNCg0KYGBgIHJ1YnkNCkdDLmRpc2Fi bGUobWFqb3I6IHRydWUpDQpHQy5kaXNhYmxlKHR5cGU6IDptYWpvcikNCmBgYA0KDQpTaG91bGQg d2UgY29uc2lkZXIgdGhlc2UgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyByYXRoZXIgdGhh biBhZGRpbmcgYSBuZXcgbWV0aG9kPw0KDQoNCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMDQ0MzogQWxsb3cgTWFqb3IgR0MncyB0byBiZSBk aXNhYmxlZA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNDQzI2NoYW5nZS0x MDgwNzINCg0KKiBBdXRob3I6IGVpZ2h0Yml0cmFwdG9yIChNYXR0aGV3IFZhbGVudGluZS1Ib3Vz ZSkNCiogU3RhdHVzOiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpbW0dpdGh1YiBQUiAjMTA1OThdXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1 bGwvMTA1OTgpDQoNCiMjIEJhY2tncm91bmQNCg0KUnVieSdzIEdDIHJ1bm5pbmcgZHVyaW5nIFJh aWxzIHJlcXVlc3RzIGNhbiBoYXZlIG5lZ2F0aXZlIGltcGFjdHMgb24gY3VycmVudGx5DQpydW5u aW5nIHJlcXVlc3RzLCBjYXVzaW5nIGFwcGxpY2F0aW9ucyB0byBoYXZlIGhpZ2ggdGFpbC1sYXRl bmN5Lg0KDQpBIHRlY2huaXF1ZSB0byBtaXRpZ2F0ZSB0aGlzIGhpZ2ggdGFpbC1sYXRlbmN5IGlz IE91dC1vZi1iYW5kIEdDIChPT0JHQykuIFRoaXMNCmlzIGJhc2ljYWxseSB3aGVyZSB0aGUgYXBw bGljYXRpb24gaXMgcnVuIHdpdGggR0MgZGlzYWJsZWQsIGFuZCB0aGVuIEdDIGlzDQpleHBsaWNp dGx5IHN0YXJ0ZWQgYWZ0ZXIgZWFjaCByZXF1ZXN0LCBvciB3aGVuIG5vIHJlcXVlc3RzIGFyZSBp biBwcm9ncmVzcy4NCg0KVGhpcyBjYW4gcmVkdWNlIHRoZSB0YWlsIGxhdGVuY3ksIGJ1dCBhbHNv IGludHJvZHVjZXMgcHJvYmxlbXMgb2YgaXRzIG93bi4gTG9uZw0KR0MgcGF1c2VzIGFmdGVyIGVh Y2ggcmVxdWVzdCByZWR1Y2UgdGhyb3VnaHB1dC4gVGhpcyBpcyBtb3JlIHByb25vdW5jZWQgb24N CnRocmVhZGluZyBzZXJ2ZXJzIGxpa2UgUHVtYSBiZWNhdXNlIGFsbCB0aGUgdGhyZWFkcyBoYXZl IHRvIGZpbmlzaCBwcm9jZXNzaW5nDQp1c2VyIHJlcXVlc3RzIGFuZCBiZSAicGF1c2VkIiBiZWZv cmUgT09CR0MgY2FuIGJlIHRyaWdnZXJlZC4NCg0KVGhpcyB0aHJvdWdocHV0IGRlY3JlYXNlIGhh cHBlbnMgZm9yIGEgY291cGxlIG9mIHJlYXNvbnM6DQoNCjEuIFRoZXJlIGFyZSBmZXcgaGV1cmlz dGljcyBhdmFpbGFibGUgZm9yIHVzZXJzIHRvIGRldGVybWluZSB3aGVuIEdDIHNob3VsZCBydW4s DQp0aGlzIG1lYW5zIHRoYXQgaW4gT09CR0Mgc2NlbmFyaW9zLCBpdCdzIHBvc3NpYmxlIHRoYXQg bWFqb3IgR0MncyBhcmUgYmVpbmcgcnVuDQptb3JlIHRoYW4gbmVjZXNzYXJ5LiAgMi4gVGhlIGxh Y2sgb2YgYW55IEdDIGR1cmluZyBhIHJlcXVlc3QgbWVhbnMgdGhhdCBsb3RzIG9mDQpnYXJiYWdl IG9iamVjdHMgaGF2ZSBiZWVuIGNyZWF0ZWQgYW5kIG5vdCBjbGVhbmVkIHVwLCBzbyB0aGUgcHJv Y2VzcyBpcyB1c2luZw0KbW9yZSBtZW1vcnkgdGhhbiBpdCBzaG91bGQgLSByZXF1aXJpbmcgbWFq b3IgR0MncyBydW4gYXMgcGFydCBvZiBPT0JHQyB0byBkbw0KbW9yZSB3b3JrIGFuZCB0aGVyZWZv cmUgdGFrZSBtb3JlIHRpbWUuDQoNClRoaXMgdGlja2V0IGF0dGVtcHRzIHRvIGFkZHJlc3MgdGhl c2UgaXNzdWVzIGJ5Og0KDQoxLiBQcm92aWRlIGBHQy5kaXNhYmxlX21ham9yYCBhbmQgaXRzIGFu dG9ueW0gYEdDLmVuYWJsZV9tYWpvcmAgdG8gZGlzYWJsZSBhbmQNCmVuYWJsZSBvbmx5IG1ham9y IEdDIDIuIFByb3ZpZGUgYEdDLm5lZWRzX21ham9yP2AgYXMgYSBiYXNpYyBoZXVyaXN0aWMgYWxs b3dpbmcNCnVzZXJzIHRvIHRlbGwgd2hlbiBSdWJ5IHNob3VsZCBydW4gYSBNYWpvciBHQy4NCg0K VGhlc2UgaWRlYXMgd2VyZSBvcmlnaW5hbGx5IHByb3Bvc2VkIGJ5IEBrbzEgYW5kIEBieXJvb3Qg aW4gW3RoaXMgcmFpbHMNCmlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vcmFpbHMvcmFpbHMvaXNz dWVzLzUwNDQ5KQ0KDQpEaXNhYmxpbmcgR0MgbWFqb3IncyB3b3VsZCBzdGlsbCBhbGxvdyBtaW5v ciBHQydzIHRvIHJ1biBkdXJpbmcgdGhlIHJlcXVlc3QsDQphdm9pZGluZyB0aGUgYmFsbG9vbmlu ZyBtZW1vcnkgdXNhZ2UgY2F1c2VkIGJ5IG5vdCBydW5uaW5nIEdDIGF0IGFsbCwgYW5kDQpyZWR1 Y2luZyB0aGUgdGltZSB0aGF0IGEgbWFqb3IgdGFrZXMgd2hlbiB3ZSBkbyBydW4gaXQsIGJlY2F1 c2UgdGhlIG51cnNlcnkNCm9iamVjdHMgaGF2ZSBiZWVuIGNsZWFuZWQgdXAgZHVyaW5nIHRoZSBy ZXF1ZXN0IGFscmVhZHkgc28gdGhlcmUgaXMgbGVzcyB3b3JrDQpmb3IgYSBtYWpvciBHQyB0byBk by4NCg0KVGhpcyBjYW4gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBHQy5uZWVkc19tYWpv cj9gIHRvIHNlbGVjdGl2ZWx5IHJ1biBhbg0KT09CR0Mgb25seSB3aGVuIG5lY2Vzc2FyeQ0KDQoj IyBJbXBsZW1lbnRhdGlvbg0KDQpUaGlzIFBSIGFkZHMgMyBuZXcgbWV0aG9kcyB0byB0aGUgYEdD YCBtb2R1bGUNCg0KLSBgR0MuZGlzYWJsZV9tYWpvcmAgVGhpcyBwcmV2ZW50cyBtYWpvciBHQydz IGZyb20gcnVubmluZyBhdXRvbWF0aWNhbGx5LiBJdA0KICBkb2VzIG5vdCByZXN0cmljdCBtaW5v cnMuIFdoZW4gYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2AgaXMgc2V0IGFuZCBhDQog IEdDIGlzIHJ1biwgaW5zdGVhZCBvZiBydW5uaW5nIGEgbWFqb3IsIG5ldyBoZWFwIHBhZ2VzIHdp bGwgYmUgYWxsb2NhdGVkIGFuZCBhDQogIG1pbm9yIHJ1biBpbnN0ZWFkLiBgb2Jqc3BhY2UtPnJn ZW5nYy5uZWVkX21ham9yX2djYCB3aWxsIHJlbWFpbiBzZXQgdW50aWwgYQ0KICBtYWpvciBpcyBt YW51YWxseSBydW4uIElmIGEgbWFqb3IgaXMgbm90IG1hbnVhbGx5IHJ1biB0aGVuIHRoZSBwcm9j ZXNzIHdpbGwNCiAgZXZlbnR1YWxseSBydW4gb3V0IG9mIG1lbW9yeS4NCiAgDQogIFdoZW4gbWFq b3IgR0MncyBhcmUgZGlzYWJsZWQsIG9iamVjdCBwcm9tb3Rpb24gaXMgZGlzYWJsZWQuIFRoYXQg aXMsIG5vDQogIG9iamVjdHMgd2lsbCBpbmNyZW1lbnQgdGhlaXIgYWdlcyBkdXJpbmcgYSBtaW5v ciBHQy4gVGhpcyBpcyB0byBhdHRlbXB0IHRvDQogIG1pbmltaXNlIGhlYXAgZ3Jvd3RoIGR1cmlu ZyB0aGUgcGVyaW9kIGJldHdlZW4gbWFqb3IgR0MncywgYnkgcmVzdHJpY3RpbmcgdGhlDQogIG51 bWJlciBvZiBvbGQtZ2VuIG9iamVjdHMgdGhhdCB3aWxsIHJlbWFpbiB1bmNvbnNpZGVyZWQgYnkg dGhlIEdDIHVudGlsIHRoZQ0KICBuZXh0IG1ham9yLg0KICANCiAgV2hlbiBgR0Muc3RhcnRgIGlz IHJ1biwgdGhlbiBtYWpvciBHQydzIHdpbGwgYmUgZW5hYmxlZCwgYSBHQyB0cmlnZ2VyZWQgd2l0 aA0KICB0aGUgb3B0aW9ucyBwYXNzZWQgdG8gYEdDLnN0YXJ0YCwgYW5kIHRoZW4gYGRpc2FibGVf bWFqb3JgIHdpbGwgYmUgc2V0IHRvIHRoZQ0KICBzdGF0ZSBpdCB3YXMgaW4gYmVmb3JlIGBHQy5z dGFydGAgd2FzIGNhbGxlZC4NCiAgDQotIGBHQy5lbmFibGVfbWFqb3JgIFRoaXMgc2ltcGx5IHVu c2V0cyB0aGUgYml0IHByZXZlbnRpbmcgbWFqb3IgR0Mncy4gVGhpcyB3aWxsDQogIHJldmVydCB0 aGUgR0MgdG8gbm9ybWFsIGdlbmVyYXRpb25hbCBiZWhhdmlvdXIuIEV2ZXJ5dGhpbmcgYmVoYXZl cyBhcyBkZWZhdWx0DQogIGFnYWluLg0KDQotIGBHQy5uZWVkc19tYWpvcj9gIFRoaXMgZXhwb3Nl cyB0aGUgdmFsdWUgb2YgYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2ANCiAgdG8gdGhl IHVzZXIgbGV2ZWwgQVBJLiBUaGlzIGlzIGFscmVhZHkgZXhwb3NlZCBpbg0KICBgR0MubGF0ZXN0 X2djX2luZm9bOm5lZWRfbWFqb3JfYnldYCBidXQgSSBmZWx0IHRoYXQgYSBzaW1wbGVyIGludGVy ZmFjZSB3b3VsZA0KICBtYWtlIHRoaXMgZWFzaWVyIHRvIHVzZSBhbmQgcmVzdWx0IGluIG1vcmUg cmVhZGFibGUgY29kZS4gZWcuDQogIA0KYGBgDQpvdXRfb2ZfYmFuZCBkbyANCiAgR0Muc3RhcnQg aWYgR0MubmVlZHNfbWFqb3I/ICANCmVuZCANCmBgYA0KDQpCZWNhdXNlIG9iamVjdCBhZ2luZyBp cyBkaXNhYmxlZCB3aGVuIG1ham9ycyBhcmUgZGlzYWJsZWQgaXQgaXMgcmVjb21tZW5kZWQgdG8N CnVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYFByb2Nlc3Mud2FybXVwYCwgd2hpY2ggd2ls bCBwcmVwYXJlIHRoZSBoZWFwIGJ5DQpydW5uaW5nIGEgbWFqb3IgR0MsIGNvbXBhY3RpbmcgdGhl IGhlYXAsIGFuZCBwcm9tb3RpbmcgZXZlcnkgcmVtYWluaW5nIG9iamVjdCB0bw0Kb2xkLWdlbi4g VGhpcyBlbnN1cmVzIHRoYXQgbWlub3IgR0MncyBhcmUgcnVubmluZyBvdmVyIHRoZSBzbWFsbGV0 cyBwb3NzaWJsZSBzZXQNCm9mIHlvdW5nIG9iamVjdHMgd2hlbiBgR0MuZGlzYWJsZV9tYWpvcmAg aXMgdHJ1ZS4NCg0KIyMgQmVuY2htYXJrcw0KDQpXZSByYW4gc29tZSB0ZXN0cyBpbiBwcm9kdWN0 aW9uIG9uIFNob3BpZnkncyBjb3JlIG1vbm9saXRoIG92ZXIgYSB3ZWVrZW5kIGFuZA0KZm91bmQg dGhhdDoNCg0KKipNZWFuIHRpbWUgc3BlbnQgaW4gR0MsIGFzIHdlbGwgYXMgcDk5LjkgYW5kIHA5 OS45OSBHQyB0aW1lcyBhcmUgYWxsDQppbXByb3ZlZC4qKiANCg0KPGltZyB3aWR0aD0iMTAwMCIg YWx0PSJTY3JlZW5zaG90IDIwMjQtMDQtMjIgYXQgMTYgNDEgNDkiDQpzcmM9Imh0dHBzOi8vZ2l0 aHViLmNvbS9ydWJ5L3J1YnkvYXNzZXRzLzMxODY5LzZjZmY1YjExLTJlMjEtNDBjMS1iYjg0LWQ5 OTRlMGUxNzk4ZCI+DQoNCioqcDk5IEdDIHRpbWUgaXMgc2xpZ2h0bHkgaGlnaGVyLioqIA0KDQo8 aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA0NCA1NSIN CnNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvZGM2NDVjYmUt OTQ5NS00NmYwLTg0ODUtMjRlNzkwYzQyZjMyIj4NCg0KV2UncmUgcnVubmluZyBmYXIgZmV3ZXIg T09CR0MgbWFqb3IgR0MncyBub3cgdGhhdCB3ZSBoYXZlIGBHQy5uZWVkc19tYWpvcj9gIHRoYW4N CndlIHdlcmUgYmVmb3JlLCBhbmQgd2UgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgY29udHJpYnV0aW5n IHRvIGEgc2xpZ2h0bHkgaW5jcmVhc2VkDQpudW1iZXIgb2YgbWlub3IgR0Mncy4gcmFpc2luZyB0 aGUgcDk5IHNsaWdodGx5Lg0KDQoqKkFwcCByZXNwb25zZSB0aW1lcyBhcmUgYWxsIGltcHJvdmVk KioNCg0KV2Ugc2VlIGEgfjIlIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRpbWVzIHdo ZW4gY29tcGFyZWQgYWdhaW5zdHN0YW5kYXJkIEdDIA0KKH43JSBwOTksIH4zJSBwOTkuOSBhbmQg fjQlIHA5OS45OSkuDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAyMDI0LTA0 LTIzIGF0IDA5IDI3IDE3IiBzcmM9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Fzc2V0cy8zMTg2 OS83MGU4MWZhNS03N2IyLTQ2OWEtODk0NS04OGJmOGY4ZmVmZTkiPg0KDQpUaGlzIGRyb3BzIHNs aWdodGx5IHRvIGFuIGEgfjElIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRpbWVzIHdo ZW4gY29tcGFyZWQNCmFnYWluc3Qgb3VyIG5vcm1hbCBPT0JHQyBhcHByb2FjaCAgKH42JSBwOTks IH4yJSBwOTkuOSBhbmQgfjMlIHA5OS45OSkuDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2Ny ZWVuc2hvdCAyMDI0LTA0LTIzIGF0IDA5IDI3IDI5IiBzcmM9Imh0dHBzOi8vZ2lzdC5naXRodWIu Y29tL2Fzc2V0cy8zMTg2OS9jYmFhMzgwNy0wY2QxLTRkYmEtYTVlNi1iOWRmOTEwMjRkNzMiPg0K DQoNCkVESVQ6IHRvIGNvcnJlY3QgYSBmb3JtdWxhIGVycm9yIGluIHRoZSBvcmlnaW5hbCBBdmVy YWdlIGNoYXJ0cywgbnVtYmVycyB1cGRhdGVkLiANCg0KLS0tRmlsZXMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KQ2FwdHVyZSBk4oCZZcyBY3JhbiAyMDI0LTA0LTIyIGHMgCAxOC40 MS41Mi5wbmcgKDI3OSBLQikNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0K IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29y ZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2Ny aWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1 YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3Jp dXMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv