[ruby-core:88433] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid

From: ko1@...
Date: 2018-08-10 09:33:13 UTC
List: ruby-core #88433
SXNzdWUgIzEzNjE4IGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4KCgpX
ZSBkaXNjdXNzZWQgYWJvdXQgbmFtaW5nLgoKYGBgClggSW9UaHJlYWQubmV3e30KWCBHcmVlblRo
cmVhZC5uZXd7fQpYIFRocmVhZDo6R3JlZW4ubmV3e30gICMxMjQg4oCcbW9zdCBsaWtlbHkgY2Fu
ZGlkYXRlc+KAnSh2b3RlOiBoc2J0KQpYIFRocmVhZC5ncmVlbnt9ICAgICAgICAgICAjMTI0IOKA
nG1vc3QgbGlrZWx5IGNhbmRpZGF0ZXPigJ0KWCBUaHJlYWQuY3JlYXRlKHNjaGVkdWxlcjog4oCm
LCBhcmdzOiAuLi4pICMxMjQg4oCcbW9zdCBsaWtlbHkgY2FuZGlkYXRlc+KAnQpUaHJlYWQ6OkNv
b3AubmV3e30KVGhyZWFkOjpDb29wZXJhdGl2ZS5uZXd7fSAjICh1c2EpClRocmVhZDo6Tm9ucHJl
ZW1wdGl2ZS5uZXd7fSAjICh1c2E7IHRoZXNlIDIgbmFtZXMgYXJlIHZlcnkgbG9uZywgdGhlbiB0
aGV5IGFyZSBnb29kIF5eKQpYIE5vbnByZWVtcHRpdmVUaHJlYWQubmV3IHt9ICMgKG1ya24pClgg
TlBUaHJlYWQubmV3IHt9ICMgKG1ya24pClggVGhyZWFkOjpMaWdodCAoa28xKQpgYGAKClg6IHJl
amVjdGVkLgoKRGlzY3Vzc2lvbiBpcyBmb2xsb3c6CgoqICgxKSBBdCBmaXJzdCwgImdyZWVuIiBp
cyByZWplY3RlZCBiZWNhdXNlICJncmVlbiIgaXMgaG93IHRvIGltcGxlbWVudCBhbmQgdGhlcmUg
YXJlIHNldmVyYWwgImdyZWVuIHRocmVhZHMiIGNhbiBzdXBwb3J0IHByZWVtcHRpb24gKHN1Y2gg
YXMgUnVieSAxLjgpLgoqICgyKSBOZXcgdG9wbGV2ZWwgbmFtZSBpcyByZWplY3RlZCBiZWNhdXNl
IGlzIHNob3VsZCBiZSB1bmRlciBgVGhyZWFkYCBuYW1pbmcuCiogKDMpYFRocmVhZC5jcmVhdGVg
IGlzIHJlamVjdGVkIGJlY2F1c2UgaXQgc2VlbXMgdG8gbWFrZSBgVGhyZWFkYCBjbGFzcyBvYmpl
Y3QgYW5kIGF1dG8tZmliZXIgc2hvdWxkIGJlIGRpZmZlcmVudCBjbGFzcy4KKiAoNCkgQ29vcGVy
YXRpdmUgaXMgcmVqZWN0ZWQgYmVjYXVzZSBpdCBpcyBhbHNvIGFtYmlndW91cy4KKiAoNSkgTm9u
cHJlZW1wdGl2ZSBpcyBjb25zaWRlcmFibGUgYmVjYXVzZSBpdCBpcyBkaWZmZXJlbnQgZnJvbSB3
aGF0IHRoZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWVycyAodXNlcnMpIHdhbnQuCiogKDYpIFRocmVh
ZDo6TGlnaHQgaXMgcmVqZWN0ZWQgYmVjYXVzZSB0aGlzIG5hbWUgZG9lcyBub3QgbWFrZSBzZW5z
ZSB3aGF0IHRoZSBjbGFzcyBpcy4KClNvIGxhc3QgZGV2bWVldGluZywgd2UgY2FuJ3QgY29uY2x1
ZGUgdGhlIG5hbWluZyBpc3N1ZS4KCkJUVywgSSB0aGluayB0aGlzIGNsYXNzIHNob3VsZCBiZSAi
VGhyZWFkIiAoSSdtIGFnYWluc3QgKDMpLCB3aGljaCBieSBNYXR6KS4KCkkgdGhpbmsgYXV0by1m
aWJlcnMgYXJlIFRocmVhZHMgd2hpY2ggaGF2ZSBzcGVjaWFsIGF0dHJpYnV0ZSAoc2NoZWR1bGVy
KS4gYXV0by1maWJlcnMgc2hvdWxkIGhhdmUgc2FtZSBtZXRob2RzIGluIGBUaHJlYWRgLgpJJ20g
bm90IHN1cmUgd2h5IE1hdHogZG9lcyBub3QgbGlrZSB0aGlzIGlkZWEsIHRob3VnaC4KClRoZXJl
IGFyZSBzZXZlcmFsIHNpbWlsYXIgZXhhbXBsZXM6CgoqIFByb2MgKHByb2MgYW5kIGxhbWJkYSkK
KiBGaWJlciAoc2VtaS1jb3JvdXRpbmUgYW5kIGNvcm91dGluZSAoYWZ0ZXIgYEZpYmVyI3RyYW5z
ZmVyYCkKCldlYWsgZXhhbXBsZXM6CiogSGFzaCAoY29tcGFyZV9ieV9pZGVudGl0eSkKKiBTdHJ1
Y3QgKGtleXdvcmRfaW5pdCkKKiBFbnVtZXJhdG9yIChzdXBwb3J0IHNpemUgb3Igbm90KQoKCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTM2MTg6IFtQ
QVRDSF0gYXV0byBmaWJlciBzY2hlZHVsZSBmb3IgcmJfd2FpdF9mb3Jfc2luZ2xlX2ZkIGFuZCBy
Yl93YWl0cGlkCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xMzYxOCNjaGFuZ2Ut
NzM0ODgKCiogQXV0aG9yOiBub3JtYWxwZXJzb24gKEVyaWMgV29uZykKKiBTdGF0dXM6IEFzc2ln
bmVkCiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiBub3JtYWxwZXJzb24gKEVyaWMgV29u
ZykKKiBUYXJnZXQgdmVyc2lvbjogCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KYGBgCmF1dG8gZmliZXIgc2NoZWR1bGUgZm9yIHJiX3dhaXRfZm9yX3NpbmdsZV9mZCBh
bmQgcmJfd2FpdHBpZAoKSW1wbGVtZW50IGF1dG9tYXRpYyBGaWJlciB5aWVsZCBhbmQgcmVzdW1l
IHdoZW4gcnVubmluZwpyYl93YWl0X2Zvcl9zaW5nbGVfZmQgYW5kIHJiX3dhaXRwaWQuCgpUaGUg
UnVieSBBUEkgY2hhbmdlcyBmb3IgRmliZXIgYXJlIG5hbWVkIGFmdGVyIGV4aXN0aW5nIFRocmVh
ZAptZXRob2RzLgoKbWFpbiBSdWJ5IEFQSToKCiAgICBGaWJlciNzdGFydCAtPiBlbmFibGUgYXV0
by1zY2hlZHVsaW5nIGFuZCBydW4gRmliZXIgdW50aWwgaXQKCQkgICBhdXRvbWF0aWNhbGx5IHlp
ZWxkcyAoZHVlIHRvIEVBR0FJTi9FV09VTERCTE9DSykKClRoZSBmb2xsb3dpbmcgYmVoYXZlIGxp
a2UgdGhlaXIgVGhyZWFkIGNvdW50ZXJwYXJ0czoKCiAgICBGaWJlci5zdGFydCAtIEZpYmVyLm5l
dyArIEZpYmVyI3N0YXJ0IChwcmVsdWRlLnJiKQogICAgRmliZXIjam9pbiAtIHJ1biBpbnRlcm5h
bCBzY2hlZHVsZXIgdW50aWwgRmliZXIgaXMgdGVybWluYXRlZAogICAgRmliZXIjdmFsdWUgLSBk
aXR0bwogICAgRmliZXIjcnVuIC0gbGlrZSBGaWJlciNzdGFydCAocHJlbHVkZS5yYikKClJpZ2h0
IG5vdywgaXQgdGFrZXMgb3ZlciByYl93YWl0X2Zvcl9zaW5nbGVfZmQoKSBhbmQKcmJfd2FpdHBp
ZCgpIGZ1bmN0aW9uIGlmIHRoZSBydW5uaW5nIEZpYmVyIGlzIGF1dG8tZW5hYmxlZAooY29udC5j
OjpyYl9maWJlcl9hdXRvX3NjaGVkX3ApCgpDaGFuZ2VzIHRvIGV4aXN0aW5nIGZ1bmN0aW9ucyBh
cmUgbWluaW1hbC4KCk5ldyBmaWxlcyAoYWxsIG5ldyBzdHJ1Y3RzIGFuZCByZWxhdGlvbnMgc2hv
dWxkIGJlIGRvY3VtZW50ZWQpOgoKICAgIGlvbS5oIC0gaW50ZXJuYWwgQVBJIGZvciB0aGUgcmVz
dCBvZiBSdWJ5Vk0gKGluY29tcGxldGU/KQogICAgaW9tX2ludGVybmFsLmggLSBpbnRlcm5hbCBo
ZWFkZXIgZm9yIGlvbV8oc2VsZWN0fGVwb2xsfGtxdWV1ZSkuaAogICAgaW9tX2Vwb2xsLmggLSBl
cG9sbC1zcGVjaWZpYyBwaWVjZXMKICAgIGlvbV9rcXVldWUuaCAtIGtxdWV1ZS1zcGVjaWZpYyBw
aWVjZXMKICAgIGlvbV9zZWxlY3QuaCAtIHNlbGVjdC1zcGVjaWZpYyBwaWVjZXMKICAgIGlvbV9w
aW5nYWJsZV9jb21tb24uaCAtIGNvbW1vbiBjb2RlIGZvciBpb21fKGVwb2xsfGtxdWV1ZSkuaAog
ICAgaW9tX2NvbW1vbi5oIC0gY29tbW9uIGZvb3RlciBmb3IgaW9tXyhzZWxlY3R8ZXBvbGx8a3F1
ZXVlKS5oCgpDaGFuZ2VzIHRvIGV4aXN0aW5nIGRhdGEgc3RydWN0dXJlczoKCiAgICByYl90aHJl
YWRfdC5hZnJ1bnEgICAtIGxpc3Qgb2YgZmliZXJzIHRvIGF1dG8tcmVzdW1lCiAgICByYl92bV90
LmlvbSAgICAgICAgICAtIFJ1YnkgSS9PIE1hbmFnZXIgKHJiX2lvbV90KSA6KQoKQmVzaWRlcyBy
Yl9pb21fdCwgYWxsIHRoZSBuZXcgc3RydWN0cyBhcmUgc3RhY2stb25seSBhbmQgcmVsaWVzCmV4
dGVuc2l2ZWx5IG9uIGNjYW4vbGlzdCBmb3IgYnJhbmNoLWxlc3MsIE8oMSkgaW5zZXJ0L2RlbGV0
ZS4KCkFzIHVzdWFsLCB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIHN0cnVjdHVyZXMgZmlyc3Qgc2hv
dWxkIGhlbHAKeW91IHVuZGVyc3RhbmQgdGhlIGNvZGUuCgpSaWdodCBub3csIEkgcmV1c2Ugc29t
ZSBzdGF0aWMgZnVuY3Rpb25zIGluIHRocmVhZC5jLApzbyB0aHJlYWQuYyBpbmNsdWRlcyBpb21f
KHNlbGVjdHxlcG9sbHxrcXVldWUpLmgKClRPRE86CgogICAgSGlqYWNrIG90aGVyIGJsb2NraW5n
IGZ1bmN0aW9ucyAoSU8uc2VsZWN0LCAuLi4pCgpJIGFtIHVzaW5nICJkb3VibGUiIGZvciB0aW1l
b3V0IHNpbmNlIGl0IGlzIG1vcmUgY29udmVuaWVudCBmb3IKYXJpdGhtZXRpYyBsaWtlIHBhcnRz
IG9mIHRocmVhZC5jLiAgIE1vc3QgcGxhdGZvcm1zIGhhdmUgZ29vZCBGUCwKSSB0aGluay4gIEFs
c28sIGFsbCAiYmxvY2tpbmciIGZ1bmN0aW9ucyAocmJfaW9tX3dhaXQqKSB3aWxsCmhhdmUgdGlt
ZW91dCBzdXBwb3J0LgoKLi9jb25maWd1cmUgZ2FpbnMgYSBuZXcgLS13aXRoLWlvbT0oc2VsZWN0
fGVwb2xsfGtxdWV1ZSkgc3dpdGNoCgpsaWJrcXVldWU6CgogIGxpYmtxdWV1ZSBzdXBwb3J0IGlz
IGluY29tcGxldGU7IGNvcm5lciBjYXNlcyBhcmUgbm90IGhhbmRsZWQgd2VsbDoKCiAgICAxKSBt
dWx0aXBsZSBmaWJlcnMgd2FpdGluZyBvbiB0aGUgc2FtZSBGRAogICAgMikgd2FpdGluZyBmb3Ig
Ym90aCByZWFkIGFuZCB3cml0ZSBldmVudHMgb24gdGhlIHNhbWUgRkQKCiAgQnVnZml4ZXMgdG8g
bGlia3F1ZXVlIG1heSBiZSBuZWNlc3NhcnkgdG8gc3VwcG9ydCBhbGwgY29ybmVyIGNhc2VzLgog
IFN1cHBvcnRpbmcgdGhlc2UgY29ybmVyIGNhc2VzIGZvciBuYXRpdmUga3F1ZXVlIHdhcyBjaGFs
bGVuZ2luZywKICBldmVuLiAgU2VlIGNvbW1lbnRzIG9uIGlvbV9rcXVldWUuaCBhbmQgaW9tX2Vw
b2xsLmggZm9yCiAgbnVhbmNlcy4KCkxpbWl0YXRpb25zCgpUZXN0IHNjcmlwdCBJIHVzZWQgdG8g
ZG93bmxvYWQgYSBmaWxlIGZyb20gbXkgc2VydmVyOgotLS0tODwtLS0KcmVxdWlyZSAnbmV0L2h0
dHAnCnJlcXVpcmUgJ3VyaScKcmVxdWlyZSAnZGlnZXN0L3NoYTEnCnJlcXVpcmUgJ2ZpYmVyJwoK
dXJsID0gJ2h0dHA6Ly84MHgyNC5vcmcvZ2l0LWktZm9yZ290LXRvLXBhY2svb2JqZWN0cy9wYWNr
L3BhY2stOTdiMjVhNzZjMDNiNDg5ZDRjYmJkODViMTJkMGUxYWQyODcxN2U1NS5pZHgnCgp1cmkg
PSBVUkkodXJsKQp1c2Vfc3NsID0gImh0dHBzIiA9PSB1cmkuc2NoZW1lCmZpYnMgPSAxMC50aW1l
cy5tYXAgZG8KICBGaWJlci5zdGFydCBkbwogICAgY3VyID0gRmliZXIuY3VycmVudC5vYmplY3Rf
aWQKICAgICMgWFhYIGdldGFkZHJpbmZvKCkgYW5kIGNvbm5lY3QoKSBhcmUgYmxvY2tpbmcKICAg
ICMgWFhYIHJlc29sdi9yZXBsYWNlICsgY29ubmVjdF9ub25ibG9jawogICAgTmV0OjpIVFRQLnN0
YXJ0KHVyaS5ob3N0LCB1cmkucG9ydCwgdXNlX3NzbDogdXNlX3NzbCkgZG8gfGh0dHB8CiAgICAg
IHJlcSA9IE5ldDo6SFRUUDo6R2V0Lm5ldyh1cmkpCiAgICAgIGh0dHAucmVxdWVzdChyZXEpIGRv
IHxyZXN8CiAgICBkaWcgPSBEaWdlc3Q6OlNIQTEubmV3CiAgICByZXMucmVhZF9ib2R5IGRvIHxi
dWZ8CiAgICAgIGRpZy51cGRhdGUoYnVmKQogICAgICAjd2FybiAiI3tjdXJ9ICN7YnVmLmJ5dGVz
aXplfVxuIgogICAgZW5kCiAgICB3YXJuICIje2N1cn0gI3tkaWcuaGV4ZGlnZXN0fVxuIgogICAg
ICBlbmQKICAgIGVuZAogICAgd2FybiAiZG9uZVxuIgogICAgOmRvbmUKICBlbmQKZW5kCgp3YXJu
ICJqb2luaW5nICN7VGltZS5ub3d9XG4iCmZpYnNbLTFdLmpvaW4oNCkKd2FybiAiam9pbmVkICN7
VGltZS5ub3d9XG4iCmFsbCA9IGZpYnMuZHVwCgp3YXJuICIxIGpvaW5lZCwgd2FpdCBmb3IgdGhl
IHJlc3RcbiIKdW50aWwgZmlicy5lbXB0eT8KICBmaWJzLmVhY2goJjpqb2luKQogIGZpYnMua2Vl
cF9pZigmOmFsaXZlPykKICB3YXJuIGZpYnMuaW5zcGVjdAplbmQKCnAgYWxsLm1hcCgmOnZhbHVl
KQoKRmliZXIubmV3IGRvCiAgcHV0cyAnSEknCmVuZC5ydW4uam9pbgpgYGAKCgotLS1GaWxlcy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjAwMDEtYXV0by1maWJlci1zY2hlZHVsZS1m
b3ItcmJfd2FpdF9mb3Jfc2luZ2xlX2ZkLWFuZC1yYi5wYXRjaCAoODIuOCBLQikKCgotLSAKaHR0
cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUt
cmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMu
cnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next