[ruby-core:117699] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
duerst via ruby-core <ruby-core@...>
Date:
2024-04-25 03:44:45 UTC
List:
ruby-core #117699
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHVlcnN0IChNYXJ0aW4gRMO8cnN0KS4N Cg0KDQprbzEgKEtvaWNoaSBTYXNhZGEpIHdyb3RlIGluICNub3RlLTg6DQo+IEJhc2ljYWxseSBJ IGxpa2UgdGhpcyBpZGVhLiBTb21lIHBvaW50cy4NCj4gDQo+ICogc2hvdWxkIG5vdCB1c2UgIm1h am9yIiBhcyBhICJtYWpvciBnYyIsIHNvIGBHQy5kaXNhYmxlX21ham9yYCBzaG91bGQgYmUgYEdD LmRpc2FibGVfbWFqb3JfZ2NgIGFuZCBzbyBvbi4NCg0KSXNuJ3QgdGhlIGBnY2AgYWxyZWFkeSB2 ZXJ5IG9idmlvdXMgZnJvbSB0aGUgY2xhc3MgYEdDYD8NCg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIwNDQzOiBBbGxvdyBNYWpvciBHQydz IHRvIGJlIGRpc2FibGVkDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjA0NDMj Y2hhbmdlLTEwODEwOA0KDQoqIEF1dGhvcjogZWlnaHRiaXRyYXB0b3IgKE1hdHRoZXcgVmFsZW50 aW5lLUhvdXNlKQ0KKiBTdGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCltbR2l0aHViIFBSICMxMDU5OF1dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5 L3J1YnkvcHVsbC8xMDU5OCkNCg0KIyMgQmFja2dyb3VuZA0KDQpSdWJ5J3MgR0MgcnVubmluZyBk dXJpbmcgUmFpbHMgcmVxdWVzdHMgY2FuIGhhdmUgbmVnYXRpdmUgaW1wYWN0cyBvbiBjdXJyZW50 bHkNCnJ1bm5pbmcgcmVxdWVzdHMsIGNhdXNpbmcgYXBwbGljYXRpb25zIHRvIGhhdmUgaGlnaCB0 YWlsLWxhdGVuY3kuDQoNCkEgdGVjaG5pcXVlIHRvIG1pdGlnYXRlIHRoaXMgaGlnaCB0YWlsLWxh dGVuY3kgaXMgT3V0LW9mLWJhbmQgR0MgKE9PQkdDKS4gVGhpcw0KaXMgYmFzaWNhbGx5IHdoZXJl IHRoZSBhcHBsaWNhdGlvbiBpcyBydW4gd2l0aCBHQyBkaXNhYmxlZCwgYW5kIHRoZW4gR0MgaXMN CmV4cGxpY2l0bHkgc3RhcnRlZCBhZnRlciBlYWNoIHJlcXVlc3QsIG9yIHdoZW4gbm8gcmVxdWVz dHMgYXJlIGluIHByb2dyZXNzLg0KDQpUaGlzIGNhbiByZWR1Y2UgdGhlIHRhaWwgbGF0ZW5jeSwg YnV0IGFsc28gaW50cm9kdWNlcyBwcm9ibGVtcyBvZiBpdHMgb3duLiBMb25nDQpHQyBwYXVzZXMg YWZ0ZXIgZWFjaCByZXF1ZXN0IHJlZHVjZSB0aHJvdWdocHV0LiBUaGlzIGlzIG1vcmUgcHJvbm91 bmNlZCBvbg0KdGhyZWFkaW5nIHNlcnZlcnMgbGlrZSBQdW1hIGJlY2F1c2UgYWxsIHRoZSB0aHJl YWRzIGhhdmUgdG8gZmluaXNoIHByb2Nlc3NpbmcNCnVzZXIgcmVxdWVzdHMgYW5kIGJlICJwYXVz ZWQiIGJlZm9yZSBPT0JHQyBjYW4gYmUgdHJpZ2dlcmVkLg0KDQpUaGlzIHRocm91Z2hwdXQgZGVj cmVhc2UgaGFwcGVucyBmb3IgYSBjb3VwbGUgb2YgcmVhc29uczoNCg0KMS4gVGhlcmUgYXJlIGZl dyBoZXVyaXN0aWNzIGF2YWlsYWJsZSBmb3IgdXNlcnMgdG8gZGV0ZXJtaW5lIHdoZW4gR0Mgc2hv dWxkIHJ1biwNCnRoaXMgbWVhbnMgdGhhdCBpbiBPT0JHQyBzY2VuYXJpb3MsIGl0J3MgcG9zc2li bGUgdGhhdCBtYWpvciBHQydzIGFyZSBiZWluZyBydW4NCm1vcmUgdGhhbiBuZWNlc3NhcnkuICAy LiBUaGUgbGFjayBvZiBhbnkgR0MgZHVyaW5nIGEgcmVxdWVzdCBtZWFucyB0aGF0IGxvdHMgb2YN CmdhcmJhZ2Ugb2JqZWN0cyBoYXZlIGJlZW4gY3JlYXRlZCBhbmQgbm90IGNsZWFuZWQgdXAsIHNv IHRoZSBwcm9jZXNzIGlzIHVzaW5nDQptb3JlIG1lbW9yeSB0aGFuIGl0IHNob3VsZCAtIHJlcXVp cmluZyBtYWpvciBHQydzIHJ1biBhcyBwYXJ0IG9mIE9PQkdDIHRvIGRvDQptb3JlIHdvcmsgYW5k IHRoZXJlZm9yZSB0YWtlIG1vcmUgdGltZS4NCg0KVGhpcyB0aWNrZXQgYXR0ZW1wdHMgdG8gYWRk cmVzcyB0aGVzZSBpc3N1ZXMgYnk6DQoNCjEuIFByb3ZpZGUgYEdDLmRpc2FibGVfbWFqb3JgIGFu ZCBpdHMgYW50b255bSBgR0MuZW5hYmxlX21ham9yYCB0byBkaXNhYmxlIGFuZA0KZW5hYmxlIG9u bHkgbWFqb3IgR0MgMi4gUHJvdmlkZSBgR0MubmVlZHNfbWFqb3I/YCBhcyBhIGJhc2ljIGhldXJp c3RpYyBhbGxvd2luZw0KdXNlcnMgdG8gdGVsbCB3aGVuIFJ1Ynkgc2hvdWxkIHJ1biBhIE1ham9y IEdDLg0KDQpUaGVzZSBpZGVhcyB3ZXJlIG9yaWdpbmFsbHkgcHJvcG9zZWQgYnkgQGtvMSBhbmQg QGJ5cm9vdCBpbiBbdGhpcyByYWlscw0KaXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9yYWlscy9y YWlscy9pc3N1ZXMvNTA0NDkpDQoNCkRpc2FibGluZyBHQyBtYWpvcidzIHdvdWxkIHN0aWxsIGFs bG93IG1pbm9yIEdDJ3MgdG8gcnVuIGR1cmluZyB0aGUgcmVxdWVzdCwNCmF2b2lkaW5nIHRoZSBi YWxsb29uaW5nIG1lbW9yeSB1c2FnZSBjYXVzZWQgYnkgbm90IHJ1bm5pbmcgR0MgYXQgYWxsLCBh bmQNCnJlZHVjaW5nIHRoZSB0aW1lIHRoYXQgYSBtYWpvciB0YWtlcyB3aGVuIHdlIGRvIHJ1biBp dCwgYmVjYXVzZSB0aGUgbnVyc2VyeQ0Kb2JqZWN0cyBoYXZlIGJlZW4gY2xlYW5lZCB1cCBkdXJp bmcgdGhlIHJlcXVlc3QgYWxyZWFkeSBzbyB0aGVyZSBpcyBsZXNzIHdvcmsNCmZvciBhIG1ham9y IEdDIHRvIGRvLg0KDQpUaGlzIGNhbiBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYEdDLm5l ZWRzX21ham9yP2AgdG8gc2VsZWN0aXZlbHkgcnVuIGFuDQpPT0JHQyBvbmx5IHdoZW4gbmVjZXNz YXJ5DQoNCiMjIEltcGxlbWVudGF0aW9uDQoNClRoaXMgUFIgYWRkcyAzIG5ldyBtZXRob2RzIHRv IHRoZSBgR0NgIG1vZHVsZQ0KDQotIGBHQy5kaXNhYmxlX21ham9yYCBUaGlzIHByZXZlbnRzIG1h am9yIEdDJ3MgZnJvbSBydW5uaW5nIGF1dG9tYXRpY2FsbHkuIEl0DQogIGRvZXMgbm90IHJlc3Ry aWN0IG1pbm9ycy4gV2hlbiBgb2Jqc3BhY2UtPnJnZW5nYy5uZWVkX21ham9yX2djYCBpcyBzZXQg YW5kIGENCiAgR0MgaXMgcnVuLCBpbnN0ZWFkIG9mIHJ1bm5pbmcgYSBtYWpvciwgbmV3IGhlYXAg cGFnZXMgd2lsbCBiZSBhbGxvY2F0ZWQgYW5kIGENCiAgbWlub3IgcnVuIGluc3RlYWQuIGBvYmpz cGFjZS0+cmdlbmdjLm5lZWRfbWFqb3JfZ2NgIHdpbGwgcmVtYWluIHNldCB1bnRpbCBhDQogIG1h am9yIGlzIG1hbnVhbGx5IHJ1bi4gSWYgYSBtYWpvciBpcyBub3QgbWFudWFsbHkgcnVuIHRoZW4g dGhlIHByb2Nlc3Mgd2lsbA0KICBldmVudHVhbGx5IHJ1biBvdXQgb2YgbWVtb3J5Lg0KICANCiAg V2hlbiBtYWpvciBHQydzIGFyZSBkaXNhYmxlZCwgb2JqZWN0IHByb21vdGlvbiBpcyBkaXNhYmxl ZC4gVGhhdCBpcywgbm8NCiAgb2JqZWN0cyB3aWxsIGluY3JlbWVudCB0aGVpciBhZ2VzIGR1cmlu ZyBhIG1pbm9yIEdDLiBUaGlzIGlzIHRvIGF0dGVtcHQgdG8NCiAgbWluaW1pc2UgaGVhcCBncm93 dGggZHVyaW5nIHRoZSBwZXJpb2QgYmV0d2VlbiBtYWpvciBHQydzLCBieSByZXN0cmljdGluZyB0 aGUNCiAgbnVtYmVyIG9mIG9sZC1nZW4gb2JqZWN0cyB0aGF0IHdpbGwgcmVtYWluIHVuY29uc2lk ZXJlZCBieSB0aGUgR0MgdW50aWwgdGhlDQogIG5leHQgbWFqb3IuDQogIA0KICBXaGVuIGBHQy5z dGFydGAgaXMgcnVuLCB0aGVuIG1ham9yIEdDJ3Mgd2lsbCBiZSBlbmFibGVkLCBhIEdDIHRyaWdn ZXJlZCB3aXRoDQogIHRoZSBvcHRpb25zIHBhc3NlZCB0byBgR0Muc3RhcnRgLCBhbmQgdGhlbiBg ZGlzYWJsZV9tYWpvcmAgd2lsbCBiZSBzZXQgdG8gdGhlDQogIHN0YXRlIGl0IHdhcyBpbiBiZWZv cmUgYEdDLnN0YXJ0YCB3YXMgY2FsbGVkLg0KICANCi0gYEdDLmVuYWJsZV9tYWpvcmAgVGhpcyBz aW1wbHkgdW5zZXRzIHRoZSBiaXQgcHJldmVudGluZyBtYWpvciBHQydzLiBUaGlzIHdpbGwNCiAg cmV2ZXJ0IHRoZSBHQyB0byBub3JtYWwgZ2VuZXJhdGlvbmFsIGJlaGF2aW91ci4gRXZlcnl0aGlu ZyBiZWhhdmVzIGFzIGRlZmF1bHQNCiAgYWdhaW4uDQoNCi0gYEdDLm5lZWRzX21ham9yP2AgVGhp cyBleHBvc2VzIHRoZSB2YWx1ZSBvZiBgb2Jqc3BhY2UtPnJnZW5nYy5uZWVkX21ham9yX2djYA0K ICB0byB0aGUgdXNlciBsZXZlbCBBUEkuIFRoaXMgaXMgYWxyZWFkeSBleHBvc2VkIGluDQogIGBH Qy5sYXRlc3RfZ2NfaW5mb1s6bmVlZF9tYWpvcl9ieV1gIGJ1dCBJIGZlbHQgdGhhdCBhIHNpbXBs ZXIgaW50ZXJmYWNlIHdvdWxkDQogIG1ha2UgdGhpcyBlYXNpZXIgdG8gdXNlIGFuZCByZXN1bHQg aW4gbW9yZSByZWFkYWJsZSBjb2RlLiBlZy4NCiAgDQpgYGANCm91dF9vZl9iYW5kIGRvIA0KICBH Qy5zdGFydCBpZiBHQy5uZWVkc19tYWpvcj8gIA0KZW5kIA0KYGBgDQoNCkJlY2F1c2Ugb2JqZWN0 IGFnaW5nIGlzIGRpc2FibGVkIHdoZW4gbWFqb3JzIGFyZSBkaXNhYmxlZCBpdCBpcyByZWNvbW1l bmRlZCB0bw0KdXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgUHJvY2Vzcy53YXJtdXBgLCB3 aGljaCB3aWxsIHByZXBhcmUgdGhlIGhlYXAgYnkNCnJ1bm5pbmcgYSBtYWpvciBHQywgY29tcGFj dGluZyB0aGUgaGVhcCwgYW5kIHByb21vdGluZyBldmVyeSByZW1haW5pbmcgb2JqZWN0IHRvDQpv bGQtZ2VuLiBUaGlzIGVuc3VyZXMgdGhhdCBtaW5vciBHQydzIGFyZSBydW5uaW5nIG92ZXIgdGhl IHNtYWxsZXRzIHBvc3NpYmxlIHNldA0Kb2YgeW91bmcgb2JqZWN0cyB3aGVuIGBHQy5kaXNhYmxl X21ham9yYCBpcyB0cnVlLg0KDQojIyBCZW5jaG1hcmtzDQoNCldlIHJhbiBzb21lIHRlc3RzIGlu IHByb2R1Y3Rpb24gb24gU2hvcGlmeSdzIGNvcmUgbW9ub2xpdGggb3ZlciBhIHdlZWtlbmQgYW5k DQpmb3VuZCB0aGF0Og0KDQoqKk1lYW4gdGltZSBzcGVudCBpbiBHQywgYXMgd2VsbCBhcyBwOTku OSBhbmQgcDk5Ljk5IEdDIHRpbWVzIGFyZSBhbGwNCmltcHJvdmVkLioqIA0KDQo8aW1nIHdpZHRo PSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA0MSA0OSINCnNyYz0iaHR0 cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvNmNmZjViMTEtMmUyMS00MGMx LWJiODQtZDk5NGUwZTE3OThkIj4NCg0KKipwOTkgR0MgdGltZSBpcyBzbGlnaHRseSBoaWdoZXIu KiogDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAyMDI0LTA0LTIyIGF0IDE2 IDQ0IDU1Ig0Kc3JjPSJodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Fzc2V0cy8zMTg2OS9k YzY0NWNiZS05NDk1LTQ2ZjAtODQ4NS0yNGU3OTBjNDJmMzIiPg0KDQpXZSdyZSBydW5uaW5nIGZh ciBmZXdlciBPT0JHQyBtYWpvciBHQydzIG5vdyB0aGF0IHdlIGhhdmUgYEdDLm5lZWRzX21ham9y P2AgdGhhbg0Kd2Ugd2VyZSBiZWZvcmUsIGFuZCB3ZSBiZWxpZXZlIHRoYXQgdGhpcyBpcyBjb250 cmlidXRpbmcgdG8gYSBzbGlnaHRseSBpbmNyZWFzZWQNCm51bWJlciBvZiBtaW5vciBHQydzLiBy YWlzaW5nIHRoZSBwOTkgc2xpZ2h0bHkuDQoNCioqQXBwIHJlc3BvbnNlIHRpbWVzIGFyZSBhbGwg aW1wcm92ZWQqKg0KDQpXZSBzZWUgYSB+MiUgcmVkdWN0aW9uIGluIGF2ZXJhZ2UgcmVzcG9uc2Ug dGltZXMgd2hlbiBjb21wYXJlZCBhZ2FpbnN0c3RhbmRhcmQgR0MgDQoofjclIHA5OSwgfjMlIHA5 OS45IGFuZCB+NCUgcDk5Ljk5KS4NCg0KPGltZyB3aWR0aD0iMTAwMCIgYWx0PSJTY3JlZW5zaG90 IDIwMjQtMDQtMjMgYXQgMDkgMjcgMTciIHNyYz0iaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vYXNz ZXRzLzMxODY5LzcwZTgxZmE1LTc3YjItNDY5YS04OTQ1LTg4YmY4ZjhmZWZlOSI+DQoNClRoaXMg ZHJvcHMgc2xpZ2h0bHkgdG8gYW4gYSB+MSUgcmVkdWN0aW9uIGluIGF2ZXJhZ2UgcmVzcG9uc2Ug dGltZXMgd2hlbiBjb21wYXJlZA0KYWdhaW5zdCBvdXIgbm9ybWFsIE9PQkdDIGFwcHJvYWNoICAo fjYlIHA5OSwgfjIlIHA5OS45IGFuZCB+MyUgcDk5Ljk5KS4NCg0KPGltZyB3aWR0aD0iMTAwMCIg YWx0PSJTY3JlZW5zaG90IDIwMjQtMDQtMjMgYXQgMDkgMjcgMjkiIHNyYz0iaHR0cHM6Ly9naXN0 LmdpdGh1Yi5jb20vYXNzZXRzLzMxODY5L2NiYWEzODA3LTBjZDEtNGRiYS1hNWU2LWI5ZGY5MTAy NGQ3MyI+DQoNCg0KRURJVDogdG8gY29ycmVjdCBhIGZvcm11bGEgZXJyb3IgaW4gdGhlIG9yaWdp bmFsIEF2ZXJhZ2UgY2hhcnRzLCBudW1iZXJzIHVwZGF0ZWQuIA0KDQotLS1GaWxlcy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDYXB0dXJlIGTigJllzIFjcmFuIDIwMjQtMDQtMjIg YcyAIDE4LjQxLjUyLnBuZyAoMjc5IEtCKQ0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwog cnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8g dW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5n Lm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4z L3Bvc3Rvcml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=