#1355: Segfault occurs when invoked a Module#dup within some threads. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- Comment(by watson1978@…): It looks like it needs exclusive control in RoxorCore::copy_method() {{{ #!diff diff --git a/vm.cpp b/vm.cpp index 5896ca6..542300a 100644 --- a/vm.cpp +++ b/vm.cpp @@ -2452,7 +2452,9 @@ RoxorCore::copy_method(Class klass, Method m) Method m2 = class_getInstanceMethod(klass, sel); assert(m2 != NULL); assert(method_getImplementation(m2) == method_getImplementation(m)); + GET_CORE()->lock(); rb_vm_method_node_t *node2 = method_node_get(m2, true); + GET_CORE()->unlock(); memcpy(node2, node, sizeof(rb_vm_method_node_t)); } return true; }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1355#comment:1> MacRuby <http://macruby.org/>