From: Eric Wong Date: 2011-01-27T15:51:42+09:00 Subject: [ruby-core:34888] [Ruby 1.9-Feature#4328][Open] export rb_thread_call_with_gvl() --mimepart_4d4115fd1e976_59895ba5b30294 Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Feature #4328: export rb_thread_call_with_gvl() http://redmine.ruby-lang.org/issues/show/4328 Author: Eric Wong Status: Open, Priority: Normal Category: core, Target version: 1.9.3 I think it is general enough to remain supported along with the rest of the MRI C API, especially since rb_thread_blocking_region() exists and is supported. It's useful for interacting with certain C libraries that expect a user-supplied callback function so the extension can allocate a Ruby object inside the callback. It can also be easily made a no-op for Ruby implementations without a GVL. ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4d4115fd1e976_59895ba5b30294 Content-Type: text/x-diff; name=0001-export-rb_thread_call_with_gvl.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=0001-export-rb_thread_call_with_gvl.patch RnJvbSA4ZGMxNjNiM2I2NWZiMWJmODNkYTk1MTY5YmZmOWI4NWQ5OGQ1MGFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIFdvbmcgPG5v cm1hbHBlcnNvbkB5aGJ0Lm5ldD4KRGF0ZTogVGh1LCAyNyBKYW4gMjAxMSAw NjoyMjoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIGV4cG9ydCByYl90aHJl YWRfY2FsbF93aXRoX2d2bCgpCgpJdCBpcyBhIHVzZWZ1bCBtZXRob2QgaW4g QyBleHRlbnNpb25zIHN1Y2ggYXMgZGF0YWJhc2UKdGhhdCB0YWtlcyBhIGNh bGxiYWNrICh3aGVyZSBJIG5lZWQgdG8gYWxsb2NhdGUgYSBSdWJ5CnN0cmlu ZykgaW5zaWRlIGEgYmxvY2tpbmcgcmVnaW9uLgotLS0KIGluY2x1ZGUvcnVi eS9pbnRlcm4uaCB8ICAgIDEgKwogdm1fY29yZS5oICAgICAgICAgICAgIHwg ICAgMSAtCiAyIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3J1YnkvaW50ZXJu LmggYi9pbmNsdWRlL3J1YnkvaW50ZXJuLmgKaW5kZXggMWUzYTAxYi4uMTQy N2ZhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydWJ5L2ludGVybi5oCisrKyBi L2luY2x1ZGUvcnVieS9pbnRlcm4uaApAQCAtNzk0LDYgKzc5NCw3IEBAIHR5 cGVkZWYgdm9pZCByYl91bmJsb2NrX2Z1bmN0aW9uX3Qodm9pZCAqKTsKIHR5 cGVkZWYgVkFMVUUgcmJfYmxvY2tpbmdfZnVuY3Rpb25fdCh2b2lkICopOwog dm9pZCByYl90aHJlYWRfY2hlY2tfaW50cyh2b2lkKTsKIGludCByYl90aHJl YWRfaW50ZXJydXB0ZWQoVkFMVUUgdGh2YWwpOwordm9pZCAqcmJfdGhyZWFk X2NhbGxfd2l0aF9ndmwodm9pZCAqKCpmdW5jKSh2b2lkICopLCB2b2lkICpk YXRhMSk7CiBWQUxVRSByYl90aHJlYWRfYmxvY2tpbmdfcmVnaW9uKHJiX2Js b2NraW5nX2Z1bmN0aW9uX3QgKmZ1bmMsIHZvaWQgKmRhdGExLAogCQkJCXJi X3VuYmxvY2tfZnVuY3Rpb25fdCAqdWJmLCB2b2lkICpkYXRhMik7CiAjZGVm aW5lIFJVQllfVUJGX0lPICgocmJfdW5ibG9ja19mdW5jdGlvbl90ICopLTEp CmRpZmYgLS1naXQgYS92bV9jb3JlLmggYi92bV9jb3JlLmgKaW5kZXggYTBi NjBiNS4uNWJkYmJkOCAxMDA2NDQKLS0tIGEvdm1fY29yZS5oCisrKyBiL3Zt X2NvcmUuaApAQCAtNjUxLDcgKzY1MSw2IEBAIHZvaWQgcmJfdm1fZ3ZsX2Rl c3Ryb3kocmJfdm1fdCAqdm0pOwogdm9pZCByYl90aHJlYWRfc3RhcnRfdGlt ZXJfdGhyZWFkKHZvaWQpOwogdm9pZCByYl90aHJlYWRfc3RvcF90aW1lcl90 aHJlYWQodm9pZCk7CiB2b2lkIHJiX3RocmVhZF9yZXNldF90aW1lcl90aHJl YWQodm9pZCk7Ci12b2lkICpyYl90aHJlYWRfY2FsbF93aXRoX2d2bCh2b2lk ICooKmZ1bmMpKHZvaWQgKiksIHZvaWQgKmRhdGExKTsKIGludCBydWJ5X3Ro cmVhZF9oYXNfZ3ZsX3Aodm9pZCk7CiBWQUxVRSByYl9tYWtlX2JhY2t0cmFj ZSh2b2lkKTsKIHR5cGVkZWYgaW50IHJiX2JhY2t0cmFjZV9pdGVyX2Z1bmMo dm9pZCAqLCBWQUxVRSwgaW50LCBWQUxVRSk7Ci0tIAoxLjcuNC5yYzEuNS5n YzZlYzc5Cgo= --mimepart_4d4115fd1e976_59895ba5b30294--