From: Run Paint Run Run Date: 2010-11-11T06:29:35+09:00 Subject: [ruby-core:33134] [Ruby 1.9-Feature#4038] IO#advise --mimepart_4cdb0d864a3d9_56648f8ee9c16da Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Issue #4038 has been updated by Run Paint Run Run. File io-advise-4.patch added > Ah ok, I missed POSIX_FADV_NORMAL=3D0 case. So, I don't think initializ= e > advise=3D0 is good idea. It mean initialize platform dependent meanings= . I've removed it and added some rudimentary tests of the API. (I can't see= how functionality can be tested without parsing the output of strace(1),= which I assume we don't want to do). ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4038 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4cdb0d864a3d9_56648f8ee9c16da Content-Type: text/x-patch; name=io-advise-4.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=io-advise-4.patch ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRl eCA1ZGVkZThkLi5iNjMwOTM4IDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4K KysrIGIvY29uZmlndXJlLmluCkBAIC0xMjY1LDcgKzEyNjUsNyBAQCBlbHNl CiBmaQogQUNfQ0hFQ0tfRlVOQ1MoZm1vZCBraWxscGcgd2FpdDQgd2FpdHBp ZCBmb3JrIHNwYXdudiBzeXNjYWxsIGNocm9vdCBnZXRjd2QgZWFjY2Vzc1wK IAkgICAgICB0cnVuY2F0ZSBmdHJ1bmNhdGUgY2hzaXplIHRpbWVzIHV0aW1l cyB1dGltZW5zYXQgZmNudGwgbG9ja2YgbHN0YXRcCi0JICAgICAgbGluayBz eW1saW5rIHJlYWRsaW5rIHJlYWRkaXJfciBmc3luYyBmZGF0YXN5bmMgZmNo b3duXAorCSAgICAgIGxpbmsgc3ltbGluayByZWFkbGluayByZWFkZGlyX3Ig ZnN5bmMgZmRhdGFzeW5jIGZjaG93biBwb3NpeF9mYWR2aXNlXAogCSAgICAg IHNldGl0aW1lciBzZXRydWlkIHNldGV1aWQgc2V0cmV1aWQgc2V0cmVzdWlk IHNldHByb2N0aXRsZSBzb2NrZXRwYWlyXAogCSAgICAgIHNldHJnaWQgc2V0 ZWdpZCBzZXRyZWdpZCBzZXRyZXNnaWQgaXNzZXR1Z2lkIHBhdXNlIGxjaG93 biBsY2htb2RcCiAJICAgICAgZ2V0cGdycCBzZXRwZ3JwIGdldHBnaWQgc2V0 cGdpZCBpbml0Z3JvdXBzIGdldGdyb3VwcyBzZXRncm91cHNcCmRpZmYgLS1n aXQgYS9pby5jIGIvaW8uYwppbmRleCA4ZmE2NjEzLi44NmU0Y2Y1IDEwMDY0 NAotLS0gYS9pby5jCisrKyBiL2lvLmMKQEAgLTEsMyArMSw0IEBACisKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAKICAgaW8uYyAtCkBAIC0xNDEz LDYgKzE0MTQsMTExIEBAIHJiX2lvX2ZkYXRhc3luYyhWQUxVRSBpbykKICNk ZWZpbmUgcmJfaW9fZmRhdGFzeW5jIHJiX2Zfbm90aW1wbGVtZW50CiAjZW5k aWYKIAorc3RhdGljIFZBTFVFIHN5bV9ub3JtYWwsICAgc3ltX3NlcXVlbnRp YWwsIHN5bV9yYW5kb20sCisgICAgICAgICAgICAgc3ltX3dpbGxuZWVkLCBz eW1fZG9udG5lZWQsIHN5bV9ub3JldXNlOworLyoKKyAqICBjYWxsLXNlcToK KyAqICAgICBpb3MuYWR2aXNlKGFkdmljZSwgb2Zmc2V0PTAsIGxlbj0wKSAt PiBuaWwKKyAqCisgKiAgQW5ub3VuY2UgYW4gaW50ZW50aW9uIHRvIGFjY2Vz cyBkYXRhIGZyb20gdGhlIGN1cnJlbnQgZmlsZSBpbiBhCisgKiAgc3BlY2lm aWMgcGF0dGVybi4gT24gcGxhdGZvcm1zIHRoYXQgZG8gbm90IHN1cHBvcnQg dGhlCisgKiAgPGVtPnBvc2l4X2ZhZHZpc2UoMik8L2VtPiBzeXN0ZW0gY2Fs bCwgdGhpcyBtZXRob2QgaXMgYSBuby1vcC4KKyAqCisgKiBfYWR2aWNlXyBp cyBvbmUgb2YgdGhlIGZvbGxvd2luZyBzeW1ib2xzOgorICoKKyAqICAqIDpu b3JtYWwgLSBObyBhZHZpY2UgdG8gZ2l2ZTsgdGhlIGRlZmF1bHQgYXNzdW1w dGlvbiBmb3IgYW4gb3BlbiBmaWxlLgorICogICogOnNlcXVlbnRpYWwgLSBU aGUgZGF0YSB3aWxsIGJlIGFjY2Vzc2VkIHNlcXVlbnRpYWxseToKKyAqICAg ICB3aXRoIGxvd2VyIG9mZnNldHMgcmVhZCBiZWZvcmUgaGlnaGVyIG9uZXMu CisgKiAgKiA6cmFuZG9tIC0gVGhlIGRhdGEgd2lsbCBiZSBhY2Nlc3NlZCBp biByYW5kb20gb3JkZXIuCisgKiAgKiA6d2lsbG5lZWQgLSBUaGUgZGF0YSB3 aWxsIGJlIGFjY2Vzc2VkIGluIHRoZSBuZWFyIGZ1dHVyZS4KKyAqICAqIDpk b250bmVlZCAtIFRoZSBkYXRhIHdpbGwgbm90IGJlIGFjY2Vzc2VkIGluIHRo ZSBuZWFyIGZ1dHVyZS4KKyAqICAqIDpub3JldXNlIC0gVGhlIGRhdGEgd2ls bCBvbmx5IGJlIGFjY2Vzc2VkIG9uY2UuCisgKgorICogVGhlIHNlbWFudGlj cyBvZiBhIHBpZWNlIG9mIGFkdmljZSBhcmUgcGxhdGZvcm0tZGVwZW5kZW50 LiBTZWUKKyAqIDxlbT5tYW4gMiBwb3NpeF9mYWR2aXNlPC9lbT4gZm9yIGRl dGFpbHMuCisgKgorICogICJkYXRhIiBtZWFucyB0aGUgcmVnaW9uIG9mIHRo ZSBjdXJyZW50IGZpbGUgdGhhdCBiZWdpbnMgYXQKKyAqICBfb2Zmc2V0XyBh bmQgZXh0ZW5kcyBmb3IgX2xlbl8gYnl0ZXMuIElmIF9sZW5fIGlzIDAsIHRo ZSByZWdpb24KKyAqICBlbmRzIGF0IHRoZSBsYXN0IGJ5dGUgb2YgdGhlIGZp bGUuIEJ5IGRlZmF1bHQsIGJvdGggX29mZnNldF8gYW5kCisgKiAgX2xlbl8g YXJlIDAsIG1lYW5pbmcgdGhhdCB0aGUgYWR2aWNlIGFwcGxpZXMgdG8gdGhl IGVudGlyZSBmaWxlLgorICoKKyAqICBJZiBhbiBlcnJvciBvY2N1cnMsIG9u ZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMgd2lsbCBiZSByYWlzZWQ6 CisgKgorICogICogPGNvZGU+SU9FcnJvcjwvY29kZT4gLSBUaGUgPGNvZGU+ SU88L2NvZGU+IHN0cmVhbSBpcyBjbG9zZWQuCisgKiAgKiA8Y29kZT5FcnJu bzo6RUJBREY8L2NvZGU+IC0gVGhlIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUg Y3VycmVudCBmaWxlIGlzCisgICAgICBpbnZhbGlkLgorICogICogPGNvZGU+ RXJybm86OkVJTlZBTDwvY29kZT4gLSBBbiBpbnZhbGlkIHZhbHVlIGZvciBf YWR2aWNlXyB3YXMgZ2l2ZW4uCisgKiAgKiA8Y29kZT5FcnJubzo6RVNQSVBF PC9jb2RlPiAtIFRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGN1cnJlbnQK KyAqICAqIGZpbGUgcmVmZXJzIHRvIGEgRklGTyBvciBwaXBlLiAoTGludXgg cmFpc2VzIDxjb2RlPkVycm5vOjpFSU5WQUw8L2NvZGU+CisgKiAgKiBpbiB0 aGlzIGNhc2UpLgorICogICogPGNvZGU+VHlwZUVycm9yPC9jb2RlPiAtIEVp dGhlciBfYWR2aWNlXyB3YXMgbm90IGEgU3ltYm9sLCBvciBvbmUgb2YgdGhl CisgICAgICBvdGhlciBhcmd1bWVudHMgd2FzIG5vdCBhbiA8Y29kZT5JbnRl Z2VyPC9jb2RlPi4KKyAqICAqIDxjb2RlPlJhbmdlRXJyb3I8L2NvZGU+IC0g T25lIG9mIHRoZSBhcmd1bWVudHMgZ2l2ZW4gd2FzIHRvbyBiaWcvc21hbGwu CisgKgorICogVGhpcyBsaXN0IGlzIG5vdCBleGhhdXN0aXZlOyBvdGhlciBF cnJubzo6IGV4Y2VwdGlvbnMgYXJlIGFsc28gcG9zc2libGUuCisgKi8KKwor c3RhdGljIFZBTFVFCityYl9pb19hZHZpc2UoaW50IGFyZ2MsIFZBTFVFICph cmd2LCBWQUxVRSBpbykKK3sKKyAgb2ZmX3Qgb2Zmc2V0LCBsZW47CisgIGlu dCBhZHZpY2UsIHJ2OworICBWQUxVRSBpbml0YWR2aWNlLCBpbml0b2Zmc2V0 LCBpbml0bGVuOworICByYl9pb190ICpmcHRyOworCisgIHJiX3NjYW5fYXJn cyhhcmdjLCBhcmd2LCAiMTIiLCAmaW5pdGFkdmljZSwgJmluaXRvZmZzZXQs ICZpbml0bGVuKTsKKyAgaWYgKFRZUEUoaW5pdGFkdmljZSkgIT0gVF9TWU1C T0wpCisgICAgICByYl9yYWlzZShyYl9lVHlwZUVycm9yLCAiYWR2aWNlIG11 c3QgYmUgYSBTeW1ib2wiKTsKKworICBvZmZzZXQgPSBOSUxfUChpbml0b2Zm c2V0KSA/IDAgOiBOVU0yT0ZGVChpbml0b2Zmc2V0KTsKKyAgbGVuICAgID0g TklMX1AoaW5pdGxlbikgICAgPyAwIDogTlVNMk9GRlQoaW5pdGxlbik7CisK KyAgaWYgICAgICAoaW5pdGFkdmljZSA9PSBzeW1fbm9ybWFsKSAgICAgewor I2lmZGVmIFBPU0lYX0ZBRFZfTk9STUFMCisgICAgICBhZHZpY2UgPSBQT1NJ WF9GQURWX05PUk1BTDsKKyNlbmRpZgorICB9CisgIGVsc2UgaWYgKGluaXRh ZHZpY2UgPT0gc3ltX3JhbmRvbSkgICAgIHsKKyNpZmRlZiBQT1NJWF9GQURW X1JBTkRPTQorICAgICAgYWR2aWNlID0gUE9TSVhfRkFEVl9SQU5ET007Cisj ZW5kaWYKKyAgfQorICBlbHNlIGlmIChpbml0YWR2aWNlID09IHN5bV9zZXF1 ZW50aWFsKSB7CisjaWZkZWYgUE9TSVhfRkFEVl9TRVFVRU5USUFMCisgICAg ICBhZHZpY2UgPSBQT1NJWF9GQURWX1NFUVVFTlRJQUw7CisjZW5kaWYKKyAg fQorICBlbHNlIGlmIChpbml0YWR2aWNlID09IHN5bV93aWxsbmVlZCkgICB7 CisjaWZkZWYgUE9TSVhfRkFEVl9XSUxMTkVFRAorICAgICAgYWR2aWNlID0g UE9TSVhfRkFEVl9XSUxMTkVFRDsKKyNlbmRpZgorICB9CisgIGVsc2UgaWYg KGluaXRhZHZpY2UgPT0gc3ltX2RvbnRuZWVkKSAgIHsKKyNpZmRlZiBQT1NJ WF9GQURWX0RPTlRORUVECisgICAgICBhZHZpY2UgPSBQT1NJWF9GQURWX0RP TlRORUVEOworI2VuZGlmCisgIH0KKyAgZWxzZSBpZiAoaW5pdGFkdmljZSA9 PSBzeW1fbm9yZXVzZSkgICAgeworI2lmZGVmIFBPU0lYX0ZBRFZfTk9SRVVT RQorICAgICAgYWR2aWNlID0gUE9TSVhfRkFEVl9OT1JFVVNFOworI2VuZGlm CisgIH0KKyAgZWxzZQorICAgICAgcmJfcmFpc2UocmJfZUFyZ0Vycm9yLCAi SW52YWxpZCBhZHZpY2U6IDolcyIsCisJICAgICAgIFJTVFJJTkdfUFRSKHJi X2lkMnN0cihTWU0ySUQoaW5pdGFkdmljZSkpKSk7CisKKyNpZmRlZiBIQVZF X1BPU0lYX0ZBRFZJU0UKKyAgaW8gPSBHZXRXcml0ZUlPKGlvKTsKKyAgR2V0 T3BlbkZpbGUoaW8sIGZwdHIpOworCisgIGlmIChydiA9IHBvc2l4X2ZhZHZp c2UoZnB0ci0+ZmQsIG9mZnNldCwgbGVuLCBhZHZpY2UpKQorICAgIC8qIHBv c2l4X2ZhZHZpc2UoMikgZG9lc24ndCBzZXQgZXJybm8uIE9uIHN1Y2Nlc3Mg aXQgcmV0dXJucyAwOyBvdGhlcndpc2UKKyAgICAgICBpdCByZXR1cm5zIHRo ZSBlcnJvciBjb2RlLiAqLworICAgICAgcmJfc3lzZXJyX2ZhaWwocnYsIFJT VFJJTkdfUFRSKGZwdHItPnBhdGh2KSk7CisjZW5kaWYKKyAgcmV0dXJuIFFu aWw7Cit9CisKIC8qCiAgKiAgY2FsbC1zZXE6CiAgKiAgICAgaW9zLmZpbGVu byAgICAtPiBmaXhudW0KQEAgLTEwMDUyLDYgKzEwMTU4LDcgQEAgSW5pdF9J Tyh2b2lkKQogICAgIHJiX2RlZmluZV9tZXRob2QocmJfY0lPLCAiYmlubW9k ZSIsICByYl9pb19iaW5tb2RlX20sIDApOwogICAgIHJiX2RlZmluZV9tZXRo b2QocmJfY0lPLCAiYmlubW9kZT8iLCByYl9pb19iaW5tb2RlX3AsIDApOwog ICAgIHJiX2RlZmluZV9tZXRob2QocmJfY0lPLCAic3lzc2VlayIsIHJiX2lv X3N5c3NlZWssIC0xKTsKKyAgICByYl9kZWZpbmVfbWV0aG9kKHJiX2NJTywg ImFkdmlzZSIsIHJiX2lvX2FkdmlzZSwgLTEpOwogCiAgICAgcmJfZGVmaW5l X21ldGhvZChyYl9jSU8sICJpb2N0bCIsIHJiX2lvX2lvY3RsLCAtMSk7CiAg ICAgcmJfZGVmaW5lX21ldGhvZChyYl9jSU8sICJmY250bCIsIHJiX2lvX2Zj bnRsLCAtMSk7CkBAIC0xMDIyMCw0ICsxMDMyNywxMCBAQCBJbml0X0lPKHZv aWQpCiAgICAgc3ltX3RleHRtb2RlID0gSUQyU1lNKHJiX2ludGVybigidGV4 dG1vZGUiKSk7CiAgICAgc3ltX2Jpbm1vZGUgPSBJRDJTWU0ocmJfaW50ZXJu KCJiaW5tb2RlIikpOwogICAgIHN5bV9hdXRvY2xvc2UgPSBJRDJTWU0ocmJf aW50ZXJuKCJhdXRvY2xvc2UiKSk7CisgICAgc3ltX25vcm1hbCA9IElEMlNZ TShyYl9pbnRlcm4oIm5vcm1hbCIpKTsKKyAgICBzeW1fc2VxdWVudGlhbCA9 IElEMlNZTShyYl9pbnRlcm4oInNlcXVlbnRpYWwiKSk7CisgICAgc3ltX3Jh bmRvbSA9IElEMlNZTShyYl9pbnRlcm4oInJhbmRvbSIpKTsKKyAgICBzeW1f d2lsbG5lZWQgPSBJRDJTWU0ocmJfaW50ZXJuKCJ3aWxsbmVlZCIpKTsKKyAg ICBzeW1fZG9udG5lZWQgPSBJRDJTWU0ocmJfaW50ZXJuKCJkb250bmVlZCIp KTsKKyAgICBzeW1fbm9yZXVzZSA9IElEMlNZTShyYl9pbnRlcm4oIm5vcmV1 c2UiKSk7CiB9CmRpZmYgLS1naXQgYS90ZXN0L3J1YnkvdGVzdF9pby5yYiBi L3Rlc3QvcnVieS90ZXN0X2lvLnJiCmluZGV4IDczYTE2ZGUuLjExOTc0MGUg MTAwNjQ0Ci0tLSBhL3Rlc3QvcnVieS90ZXN0X2lvLnJiCisrKyBiL3Rlc3Qv cnVieS90ZXN0X2lvLnJiCkBAIC0xNzIyLDQgKzE3MjIsMzggQEAgRW5kCiAg ICAgICBlbmQKICAgICBlbmQKICAgZW5kCisKKyAgZGVmIHRlc3RfYWR2aXNl CisgICAgdCA9IG1ha2VfdGVtcGZpbGUKKyAgICBhc3NlcnRfcmFpc2UoQXJn dW1lbnRFcnJvciwgIm5vIGFyZ3VtZW50cyIpIHsgdC5hZHZpc2UgfQorICAg ICV3e25vcm1hbCByYW5kb20gc2VxdWVudGlhbCB3aWxsbmVlZCBkb250bmVl ZCBub3JldXNlfS5tYXAoJjp0b19zeW0pLmVhY2ggZG8gfGF8CisgICAgICBb WzAsMF0sIFswLCAyMF0sIFs0MDAsIDJdXS5lYWNoIGRvIHxsLCBvfAorICAg ICAgICBvcGVuKG1ha2VfdGVtcGZpbGUucGF0aCkgZG8gfHR8CisgICAgICAg ICAgYXNzZXJ0X2VxdWFsKHQuYWR2aXNlKGEsIGwsIG8pLCBuaWwpCisgICAg ICAgICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IsICJzdXBlcmZsdW91 cyBhcmd1bWVudHMiKSBkbworICAgICAgICAgICAgdC5hZHZpc2UoYSwgbCwg bywgbCkKKyAgICAgICAgICBlbmQKKyAgICAgICAgICBhc3NlcnRfcmFpc2Uo VHlwZUVycm9yLCAid3JvbmcgdHlwZSBmb3IgZmlyc3QgYXJndW1lbnQiKSBk bworICAgICAgICAgICAgdC5hZHZpc2UoYS50b19zLCBsLCBvKQorICAgICAg ICAgIGVuZAorICAgICAgICAgIGFzc2VydF9yYWlzZShUeXBlRXJyb3IsICJ3 cm9uZyB0eXBlIGZvciBsYXN0IGFyZ3VtZW50IikgZG8KKyAgICAgICAgICAg IHQuYWR2aXNlKGEsIGwsIEFycmF5KG8pKQorICAgICAgICAgIGVuZAorICAg ICAgICAgIGFzc2VydF9yYWlzZShSYW5nZUVycm9yLCAibGFzdCBhcmd1bWVu dCB0b28gYmlnIikgZG8KKyAgICAgICAgICAgIHQuYWR2aXNlKGEsIGwsIDk5 OTllOTkpCisgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgICAgICBh c3NlcnRfcmFpc2UoSU9FcnJvciwgImNsb3NlZCBmaWxlIikgZG8gCisgICAg ICAgICAgbWFrZV90ZW1wZmlsZS5hZHZpc2UoYS50b19zeW0sIGwsIG8pCisg ICAgICAgIGVuZAorICAgICAgZW5kCisgICAgZW5kCisgICAgJXd7Tm9ybWFs IHJhbmQgZ2xhcmsgd2lsbF9uZWVkIHp6enp6enp6enp6eiBcdTI2MDl9Lm1h cCgmOnRvX3N5bSkuZWFjaCBkbyB8YXwKKyAgICAgIFtbMCwwXSwgWzAsIDIw XSwgWzQwMCwgMl1dLmVhY2ggZG8gfGwsIG98CisgICAgICAgIG9wZW4obWFr ZV90ZW1wZmlsZS5wYXRoKSBkbyB8dHwKKyAgICAgICAgICBhc3NlcnRfcmFp c2UoQXJndW1lbnRFcnJvciwgImludmFsaWQgYWR2aWNlIikgeyB0LmFkdmlz ZShhLCBsLCBvKSB9CisgICAgICAgIGVuZAorICAgICAgZW5kCisgICAgZW5k CisgIGVuZAogZW5kCg== --mimepart_4cdb0d864a3d9_56648f8ee9c16da--