[ruby-core:105793] [Ruby master Feature#17837] Add support for Regexp timeouts
From:
"Dan0042 (Daniel DeLorme)" <noreply@...>
Date:
2021-10-25 17:21:25 UTC
List:
ruby-core #105793
SXNzdWUgIzE3ODM3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp LgoKClRoZXJlIGFyZSBvdGhlciB0cmFkZW9mZnMgdG8gY29uc2lkZXIKKiBgUmVnZXhwLmJhY2t0 cmFja19saW1pdD1gIGlzIGRldGVybWluaXN0aWMsIGFuZCB3aWxsIHN0b3AgZXhlY3V0aW9uIGFm dGVyIGEgY2VydGFpbiBhbW91bnQgb2YgInByb2Nlc3NpbmciIHJlZ2FyZGxlc3Mgb2YgaG93IG1h bnkgdGhyZWFkcyBhcmUgYnVzeQoqIGBSZWdleHAudGltZW91dD1gIHdpbGwgc3RvcCBhIHJlZ2V4 cCBhZnRlciBhIGNlcnRhaW4gdGltZSByZWdhcmRsZXNzIG9mIGhvdyBvdGhlciBtYW55IHRocmVh ZHMgYXJlIGJ1c3kgb3IgdGhlIG5hdHVyZS9jb21wb3NpdGlvbiBvZiB0aGUgcmVnZXhwCgpQZXJz b25hbGx5IEkgZG9uJ3QgY2FyZSBtdWNoIGZvciB0aGUgYFJlZ2V4cC50aW1lb3V0YCBhcHByb2Fj aDsgSSBjb25zaWRlciB0aGF0IGBiYWNrdHJhY2tfbGltaXRgIGlzIGEgYmV0dGVyIGluZGljYXRv ciBvZiBSZURPUyAoZS5nIDFNIGJhY2t0cmFja3MgaW4gMXMgbWF5IGJlIG9rLCBidXQgMTBNIGJh Y2t0cmFja3MgaW4gMXMgaXMgbm90KS4KU28gaWYgd2UncmUgbWl4aW5nIHRoZSB0d28gYXBwcm9h Y2hlcyBJIHdvdWxkIGxpa2Ugc29tZSBjb250cm9sIG92ZXIgdGhpcywgc3VjaCBhcyBgUmVnZXhw LmJhY2t0cmFja19saW1pdCA9IGEuLmJgIHdoZXJlIHRoZSB0aW1lIGxpbWl0IGlzIGVuYWJsZWQg YWZ0ZXIgYGFgIGJhY2t0cmFja3MgYW5kIGBiYCBpcyB0aGUgaGFyZCBiYWNrdHJhY2sgbGltaXQu CgoKCkVyZWdvbiAoQmVub2l0IERhbG96ZSkgd3JvdGUgaW4gI25vdGUtMzQ6Cj4gV2hhdCBpZiB0 aGUgdGltZSBiZXR3ZWVuIHR3byBiYWNrdHJhY2tzIGlzIG11Y2ggbGFyZ2VyIGZvciBzb21lIFJl Z2V4cCwgaXNuJ3QgdGhhdCBwb3NzaWJsZSB3aXRoIG1hbnkgY2hhcmFjdGVycyBiZWluZyBtYXRj aGVkIGFuZCB0aGVuIGF0IHRoZSBlbmQgYSBwb3NzaWJsZSBiYWNrdHJhY2s/IChlLmcuLCBzb21l dGhpbmcgbGlrZSBgLyhhezEwMDAwMH18YnsxMDAwMDB9KSovYCkKPiBJZiBzbywgaXQgc291bmRz IGxpa2UgMTAwMDAgYmFja3RyYWNrcyBjb3VsZCBiZSBlaXRoZXIgbWljcm9zZWNvbmRzIG9yIHNl Y29uZHMsIGkuZS4sIG5vdCBuZWNlc3NhcmlseSByZWxhdGVkIHRvIHRpbWUsIGFuZCB0aGUgYXBw cm9hY2ggd291bGQgbm90IHdvcmsgZm9yIHNvbWUgUmVnZXhwcyB3aGljaCBiYWNrdHJhY2suCgpJ IGRvbid0IHRoaW5rIHdlIG5lZWQgdG8gd29ycnkgdGhhdCBtdWNoIGFib3V0IGEgcmVnZXhwIGN1 c3RvbS1tYWRlIHRvIGJlIHNsb3cuIFJlRE9TIGlzIGFib3V0IGN1c3RvbS1tYWRlIF9zdHJpbmdz XyB0aGF0IHRyaWdnZXIgYmFja3RyYWNraW5nIGluIHZlcnkgcGxhaW4sIHJlZ3VsYXItbG9va2lu ZyByZWdleHBzLiBJbiBDVkUtMjAyMS0yMjg4MCwgYSByZWdleHAgYXMgc2ltcGxlIGFzIGAvXi0/ XEQrW1xkLF0rXC5cZHsyfSQvYCB3YXMgdGhlIHNvdXJjZSBvZiB0aGUgdHJvdWJsZS4gSSB0aGlu ayBpdCdzIG9rIHRvIHRoaW5rIG9mIFJlRE9TIHByb3RlY3Rpb24gaW4gdGVybXMgb2Ygc3VjaCBy ZWFsLWxpZmUgcmVnZXhwcyBsaWtlIHRoYXQgb25lLCBhbmQgbm90IHRoZSByZWFsbSBvZiBhbGwg cG9zc2libGUgd2VpcmQgcmVnZXhwcy4gQW5kIEkgdGhpbmsgdGhlc2UgcmVhbC1saWZlIHJlZ2V4 cHMgd2lsbCBoYXZlIGEgcHJlZGljdGFibGUgcmVsYXRpb25zaGlwIGJldHdlZW4gbnVtYmVyIG9m IGJhY2t0cmFja3MgYW5kIHRpbWUuCgo+IElNSE8gYSBiZXR0ZXIgc29sdXRpb24gdG8gdGhpcyBp cyB1c2UgYSBhdXRvbWF0b24tYmFzZWQgcmVnZXhwIGVuZ2luZSAod2hpY2ggYWx3YXlzIG1hdGNo ZXMgaW4gbGluZWFyIHRpbWUpCgpJdCBtYXkgaW5kZWVkIGJlICJiZXR0ZXIiLCBidXQgd2hlbiB3 aWxsIGl0IGJlIGF2YWlsYWJsZT8gYFJlZ2V4cC5iYWNrdHJhY2tfbGltaXQ9YCBpcyBhdmFpbGFi bGUgcmlnaHQgbm93LCB3aGljaCBtYWtlcyBpdCAiYmV0dGVyIiBieSBkZWZhdWx0LCBJTUhPLgoK VGhlIGBSZWdleHAuYmFja3RyYWNrX2xpbWl0PWAgYXBwcm9hY2ggaXMKKiBzaW1wbGUKKiBkZXRl cm1pbmlzdGljCiogYWxtb3N0IG5vIG92ZXJoZWFyZAoqIGF2YWlsYWJsZSBub3cKCmBSZWdleHAu dGltZW91dD1gIHNvdW5kcyAiZWFzeSB0byB1c2UgaW4gcHJhY3RpY2FsIGFwcGxpY2F0aW9ucyIg YnV0IGl0J3MgYWxzbyBhIGJpdCBhcmJpdHJhcnkuIFdoYXQgdGltZW91dCB0byB1c2U/IDUgc2Vj b25kcz8gV2h5IDU/IEluIHJlYWxpdHkgd2Ugc2hvdWxkIG1lYXN1cmUgaG93IGxvbmcgcmVnZXhw cyB0YWtlIHRvIGV4ZWN1dGUgYW5kIHRoZW4gZml4IGEgbGltaXQgYmFzZWQgb24gdGhlIGxhcmdl c3QgdmFsaWQgbWVhc3VyZWQgdmFsdWUuIEFuZCBhdCB0aGF0IHBvaW50IHRoZXJlJ3Mgbm8gcmVh c29uIHdoeSB0aW1lIGl0IGVhc2llciB0byBtZWFzdXJlIHRoYW4gYmFja3RyYWNrcy4KCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTc4Mzc6IEFkZCBz dXBwb3J0IGZvciBSZWdleHAgdGltZW91dHMKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzE3ODM3I2NoYW5nZS05NDMxMQoKKiBBdXRob3I6IHNhbS5zYWZmcm9uIChTYW0gU2FmZnJv bikKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyMjIEJhY2tncm91bmQKClJlRG9TIGFyZSBhIHZlcnkgY29t bW9uIHNlY3VyaXR5IGlzc3VlLiBBdCBEaXNjb3Vyc2Ugd2UgaGF2ZSBzZWVuIGEgZmV3IHRocm91 Z2ggdGhlIHllYXJzLiBodHRwczovL293YXNwLm9yZy93d3ctY29tbXVuaXR5L2F0dGFja3MvUmVn dWxhcl9leHByZXNzaW9uX0RlbmlhbF9vZl9TZXJ2aWNlXy1fUmVEb1MKCkluIGEgbnV0c2hlbGwg dGhlcmUgYXJlIDEwMHMgb2Ygd2F5cyB0aGlzIGNhbiBoYXBwZW4gaW4gcHJvZHVjdGlvbiBhcHBz LCB0aGUga2V5IGlzIGZvciBhbiBhdHRhY2tlciAob3IgcG9zc2libHkgaW5ub2NlbnQgcGVyc29u KSB0byBzdXBwbHkgZWl0aGVyIGEgcHJvYmxlbWF0aWMgUmVnZXhwIG9yIGEgYmFkIHN0cmluZyB0 byB0ZXN0IGl0IHdpdGguCgpgYGAKL0EoQnxDKykrRC8gPX4gIkEiICsgIkMiICogMTAwICsgIlgi CmBgYAoKSGF2aW5nIGEgcHJvYmxlbSBSZWdleHAgc29tZXdoZXJlIGluIGEgbGFyZ2UgYXBwIGlz IGEgdW5pdmVyc2FsIGNvbnN0YW50LCBpdCB3aWxsIGhhcHBlbiBhcyBsb25nIGFzIHlvdSBhcmUg dXNpbmcgUmVnZXhwcy4gCgoKQ3VycmVudGx5IHRoZSBvbmx5IGZlYXNpYmxlIHdheSBvZiBzdXBw bHlpbmcgYSBjb25zaXN0ZW50IHNhZmVndWFyZCBpcyBieSB1c2luZyBgVGhyZWFkLnJhaXNlYCBh bmQgbWFuYWdpbmcgYWxsIGV4ZWN1dGlvbi4gVGhpcyBraW5kIG9mIHBhdHRlcm4gcmVxdWlyZXMg dXNhZ2Ugb2YgYSB0aGlyZCBwYXJ0eSBpbXBsZW1lbnRhdGlvbi4gVGhlcmUgYXJlIHBvc3NpYmx5 IGlzc3VlcyB3aXRoIGpSdWJ5IGFuZCBUcnVmZmxlIHdoZW4gdGFraW5nIGFwcHJvYWNoZXMgbGlr ZSB0aGlzLgoKIyMjIFByaW9yIGFydAoKLk5FVCBwcm92aWRlcyBhIGBNYXRjaFRpbWVvdXRgIHBy b3BlcnR5IHBlcjogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2FwaS9z eXN0ZW0udGV4dC5yZWd1bGFyZXhwcmVzc2lvbnMucmVnZXgubWF0Y2h0aW1lb3V0P3ZpZXc9bmV0 LTUuMAoKSmF2YSBoYXMgbm90aGluZyBidWlsdCBpbiBhcyBmYXIgYXMgSSBjYW4gdGVsbDogaHR0 cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvOTEwNzQwL2NhbmNlbGxpbmctYS1sb25n LXJ1bm5pbmctcmVnZXgtbWF0Y2gKCk5vZGUgaGFzIG5vdGhpbmcgYnVpbHQgaW4gYXMgZmFyIGFz IEkgY2FuIHRlbGw6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM4ODU5NTA2 L2NhbmNlbC1yZWdleC1tYXRjaC1pZi10aW1lb3V0CgoKR29sYW5nIGFuZCBSdXN0IHVzZXMgUkUy IHdoaWNoIGlzIG5vdCB2dWxuZXJhYmxlIHRvIERvUyBieSBsaW1pdGluZyBmZWF0dXJlcyAoYXZh aWxhYmxlIGluIFJ1YnkgUkUyIGdlbSkKCmBgYAppcmIobWFpbik6MDAzOjA+IHIgPSBSRTI6OlJl Z2V4cC5uZXcoJ0EoQnxDKykrRCcpCj0+ICM8UkUyOjpSZWdleHAgL0EoQnxDKykrRC8+CmlyYiht YWluKTowMDQ6MD4gci5tYXRjaCgiQSIgKyAiQyIgKiAxMDAgKyAiWCIpCj0+IG5pbApgYGAKCiMj IyBQcm9wb3NhbAoKSW1wbGVtZW50IGBSZWdleHAudGltZW91dGAgd2hpY2ggYWxsb3cgdXMgdG8g c3BlY2lmeSBhIGdsb2JhbCB0aW1lb3V0IGZvciBhbGwgUmVnZXhwIG9wZXJhdGlvbnMgaW4gUnVi eS4gCgpQZXIgUmVnZXhwIHdvdWxkIHJlcXVpcmUgbWFzc2l2ZSBhcHBsaWNhdGlvbiBjaGFuZ2Vz LCBhbG1vc3QgYWxsIHdlYiBhcHBzIHdvdWxkIGRvIGp1c3QgZmluZSB3aXRoIGEgMSBzZWNvbmQg UmVnZXhwIHRpbWVvdXQuCgpJZiBgdGltZW91dGAgaXMgc2V0IHRvIGBuaWxgIGV2ZXJ5dGhpbmcg d291bGQgd29yayBhcyBpdCBkb2VzIHRvZGF5LCB3aGVuIHNldCB0byBzZWNvbmQgYSAibW9uaXRv ciIgdGhyZWFkIHdvdWxkIHRyYWNrIHJ1bm5pbmcgcmVnZXhwcyBhbmQgdGltZSB0aGVtIG91dCBh Y2NvcmRpbmcgdG8gdGhlIGdsb2JhbCB2YWx1ZS4KCiMjIyBBbHRlcm5hdGl2ZXMgCgpJIHJlY29t bWVuZCBhZ2FpbnN0IGEgInBlciBSZWdleHAiIEFQSSBhcyB0aGlzIGRlY2lzaW9uIGlzIGF0IHRo ZSBhcHBsaWNhdGlvbiBsZXZlbC4gWW91IHdhbnQgdG8gYXBwbHkgaXQgdG8gYWxsIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgaW4gYWxsIHRoZSBnZW1zIHlvdSBhcmUgY29uc3VtaW5nLgoKSSByZWNvbW1l bmQgYWdhaW5zdCBhIG1vdmUgdG8gUkUyIGF0IHRoZSBtb21lbnQgYXMgd2F5IHRvbyBtdWNoIHdv dWxkIGJyZWFrIAoKCiMjIyBTZWUgYWxzbzogCgpodHRwczovL3Blb3BsZS5jcy52dC5lZHUvZGF2 aXNqYW0vZG93bmxvYWRzL3B1YmxpY2F0aW9ucy9EYXZpcy1EaXNzZXJ0YXRpb24tMjAyMC5wZGYK aHR0cHM6Ly9sZXZlbHVwLmdpdGNvbm5lY3RlZC5jb20vdGhlLXJlZ3VsYXItZXhwcmVzc2lvbi1k ZW5pYWwtb2Ytc2VydmljZS1yZWRvcy1jaGVhdC1zaGVldC1hNzhkMGVkN2Q4NjUKCgoKCgotLSAK aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNv cmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlz dHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==