--=-Rldf+wvohOdFqHHPxqGS Content-Type: multipart/mixed; boundary="=-DbyEpUGh7B7bNSAr2VNQ" --=-DbyEpUGh7B7bNSAr2VNQ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2007-02-11 at 07:00 +0900, Akinori MUSHA wrote: > If you find any compatibility problems or unexpected behavior with the > new implementation, please let me know. The version of fastthread which was merged doesn't handle interrupted waits correctly, which can result in an rb_bug(). Please see Ruby bug #8663: http://rubyforge.org/tracker/index.php?func=3Ddetail&aid=3D8663&group_id=3D= 426&atid=3D1698 A patch to fix the issue is attached (also posted to the bug tracker). -mental --=-DbyEpUGh7B7bNSAr2VNQ Content-Description: Content-Disposition: inline; filename=fastthread-wait-fix.diff Content-Transfer-Encoding: base64 Content-Type: text/x-patch; charset=UTF-8 SW5kZXg6IGV4dC90aHJlYWQvdGhyZWFkLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBleHQvdGhyZWFkL3Ro cmVhZC5jCShyZXZpc2lvbiAxMTc0NCkNCisrKyBleHQvdGhyZWFkL3RocmVhZC5jCSh3b3JraW5n IGNvcHkpDQpAQCAtMTMyLDYgKzEzMiwxOCBAQA0KICAgICB9DQogfQ0KIA0KK3N0YXRpYyB2b2lk DQorcmVjeWNsZV9lbnRyaWVzKExpc3QgKmxpc3QsIEVudHJ5ICpmaXJzdF9lbnRyeSwgRW50cnkg Kmxhc3RfZW50cnkpDQorew0KKyNpZmRlZiBVU0VfTUVNX1BPT0xTDQorICAgIGxhc3RfZW50cnkt Pm5leHQgPSBsaXN0LT5lbnRyeV9wb29sOw0KKyAgICBsaXN0LT5lbnRyeV9wb29sID0gZmlyc3Rf ZW50cnk7DQorI2Vsc2UNCisgICAgbGFzdF9lbnRyeS0+bmV4dCA9IE5VTEw7DQorICAgIGZyZWVf ZW50cmllcyhmaXJzdF9lbnRyeSk7DQorI2VuZGlmDQorfQ0KKw0KIHN0YXRpYyBWQUxVRQ0KIHNo aWZ0X2xpc3QoTGlzdCAqbGlzdCkNCiB7DQpAQCAtMTQ5LDI2ICsxNjEsMzMgQEANCiAgICAgLS1s aXN0LT5zaXplOw0KIA0KICAgICB2YWx1ZSA9IGVudHJ5LT52YWx1ZTsNCi0jaWZkZWYgVVNFX01F TV9QT09MUw0KLSAgICBlbnRyeS0+bmV4dCA9IGxpc3QtPmVudHJ5X3Bvb2w7DQotICAgIGxpc3Qt PmVudHJ5X3Bvb2wgPSBlbnRyeTsNCi0jZWxzZQ0KLSAgICBmcmVlKGVudHJ5KTsNCi0jZW5kaWYN CisgICAgcmVjeWNsZV9lbnRyaWVzKGxpc3QsIGVudHJ5LCBlbnRyeSk7DQogDQogICAgIHJldHVy biB2YWx1ZTsNCiB9DQogDQogc3RhdGljIHZvaWQNCityZW1vdmVfb25lKExpc3QgKmxpc3QsIFZB TFVFIHZhbHVlKQ0KK3sNCisgICAgRW50cnkgKipyZWY7DQorICAgIEVudHJ5ICplbnRyeTsNCisg ICAgZm9yIChyZWYgPSAmbGlzdC0+ZW50cmllcywgZW50cnkgPSBsaXN0LT5lbnRyaWVzOw0KKyAg ICAgICAgICAgICAgZW50cnkgIT0gTlVMTDsNCisgICAgICAgICAgICAgIHJlZiA9ICZlbnRyeS0+ bmV4dCwgZW50cnkgPSBlbnRyeS0+bmV4dCkNCisgICAgew0KKyAgICAgICAgaWYgKGVudHJ5LT52 YWx1ZSA9PSB2YWx1ZSkgew0KKyAgICAgICAgICAgICpyZWYgPSBlbnRyeS0+bmV4dDsNCisgICAg ICAgICAgICByZWN5Y2xlX2VudHJpZXMobGlzdCwgZW50cnksIGVudHJ5KTsNCisgICAgICAgICAg ICBicmVhazsNCisgICAgICAgIH0NCisgICAgfQ0KK30NCisNCitzdGF0aWMgdm9pZA0KIGNsZWFy X2xpc3QoTGlzdCAqbGlzdCkNCiB7DQogICAgIGlmIChsaXN0LT5sYXN0X2VudHJ5KSB7DQotI2lm ZGVmIFVTRV9NRU1fUE9PTFMNCi0gICAgICAgIGxpc3QtPmxhc3RfZW50cnktPm5leHQgPSBsaXN0 LT5lbnRyeV9wb29sOw0KLSAgICAgICAgbGlzdC0+ZW50cnlfcG9vbCA9IGxpc3QtPmVudHJpZXM7 DQotI2Vsc2UNCi0gICAgICAgIGZyZWVfZW50cmllcyhsaXN0LT5lbnRyaWVzKTsNCi0jZW5kaWYN CisgICAgICAgIHJlY3ljbGVfZW50cmllcyhsaXN0LCBsaXN0LT5lbnRyaWVzLCBsaXN0LT5sYXN0 X2VudHJ5KTsNCiAgICAgICAgIGxpc3QtPmVudHJpZXMgPSBOVUxMOw0KICAgICAgICAgbGlzdC0+ bGFzdF9lbnRyeSA9IE5VTEw7DQogICAgICAgICBsaXN0LT5zaXplID0gMDsNCkBAIC0yMjMsNyAr MjQyLDMxIEBADQogICAgIHJldHVybiBRbmlsOw0KIH0NCiANCitzdGF0aWMgVkFMVUUNCit3YWl0 X2xpc3RfaW5uZXIoTGlzdCAqbGlzdCkNCit7DQorICAgIHB1c2hfbGlzdChsaXN0LCByYl90aHJl YWRfY3VycmVudCgpKTsNCisgICAgcmJfdGhyZWFkX3N0b3AoKTsNCisgICAgcmV0dXJuIFFuaWw7 DQorfQ0KKw0KK3N0YXRpYyBWQUxVRQ0KK3dhaXRfbGlzdF9jbGVhbnVwKExpc3QgKmxpc3QpDQor ew0KKyAgICAvKiBjbGVhbnVwIGluIGNhc2Ugb2Ygc3B1cmlvdXMgd2FrZXVwcyAqLw0KKyAgICBy Yl90aHJlYWRfY3JpdGljYWwgPSAxOw0KKyAgICByZW1vdmVfb25lKGxpc3QsIHJiX3RocmVhZF9j dXJyZW50KCkpOw0KKyAgICByYl90aHJlYWRfY3JpdGljYWwgPSAwOw0KKyAgICByZXR1cm4gUW5p bDsNCit9DQorDQogc3RhdGljIHZvaWQNCit3YWl0X2xpc3QoTGlzdCAqbGlzdCkNCit7DQorICAg IHJiX2Vuc3VyZSh3YWl0X2xpc3RfaW5uZXIsIChWQUxVRSlsaXN0LCB3YWl0X2xpc3RfY2xlYW51 cCwgKFZBTFVFKWxpc3QpOw0KK30NCisNCitzdGF0aWMgdm9pZA0KIGFzc2VydF9ub19zdXJ2aXZv cnMoTGlzdCAqd2FpdGluZywgY29uc3QgY2hhciAqbGFiZWwsIHZvaWQgKmFkZHIpDQogew0KICAg ICBFbnRyeSAqZW50cnk7DQpAQCAtMzcxLDkgKzQxNCw3IEBADQogICAgIHJiX3RocmVhZF9jcml0 aWNhbCA9IDE7DQogDQogICAgIHdoaWxlIChSVEVTVChtdXRleC0+b3duZXIpKSB7DQotICAgICAg ICBwdXNoX2xpc3QoJm11dGV4LT53YWl0aW5nLCBjdXJyZW50KTsNCi0gICAgICAgIHJiX3RocmVh ZF9zdG9wKCk7DQotDQorICAgICAgICB3YWl0X2xpc3QoJm11dGV4LT53YWl0aW5nKTsNCiAgICAg ICAgIHJiX3RocmVhZF9jcml0aWNhbCA9IDE7DQogICAgIH0NCiAgICAgbXV0ZXgtPm93bmVyID0g Y3VycmVudDsgDQpAQCAtNjA2LDggKzY0Nyw3IEBADQogICAgICAgICByYl9yYWlzZShyYl9lVGhy ZWFkRXJyb3IsICJOb3Qgb3duZXIiKTsNCiAgICAgfQ0KICAgICBtdXRleC0+b3duZXIgPSBRbmls Ow0KLSAgICBwdXNoX2xpc3QoJmNvbmR2YXItPndhaXRpbmcsIHJiX3RocmVhZF9jdXJyZW50KCkp Ow0KLSAgICByYl90aHJlYWRfc3RvcCgpOw0KKyAgICB3YWl0X2xpc3QoJmNvbmR2YXItPndhaXRp bmcpOw0KIA0KICAgICBsb2NrX211dGV4KG11dGV4KTsNCiB9DQpAQCAtNjI2LDggKzY2Niw3IEBA DQogc3RhdGljIFZBTFVFDQogbGVnYWN5X3dhaXQoVkFMVUUgdW51c2VkLCBsZWdhY3lfd2FpdF9h cmdzICphcmdzKQ0KIHsNCi0gICAgcHVzaF9saXN0KCZhcmdzLT5jb25kdmFyLT53YWl0aW5nLCBy Yl90aHJlYWRfY3VycmVudCgpKTsNCi0gICAgcmJfdGhyZWFkX3N0b3AoKTsNCisgICAgd2FpdF9s aXN0KCZhcmdzLT5jb25kdmFyLT53YWl0aW5nKTsNCiAgICAgcmJfZnVuY2FsbChhcmdzLT5tdXRl eCwgcmJfaW50ZXJuKCJsb2NrIiksIDApOw0KICAgICByZXR1cm4gUW5pbDsNCiB9DQo= --=-DbyEpUGh7B7bNSAr2VNQ-- --=-Rldf+wvohOdFqHHPxqGS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQBF0427SuZBmZzm14ERAhy1AKCzDU+yywf1aB7YAoCBsaumbuQbdQCfZ/mo rS9U4LBcZv5/mxls2AwIbzM= =BeKt -----END PGP SIGNATURE----- --=-Rldf+wvohOdFqHHPxqGS--