[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] Interpreter Locks
I've run into a pretty serious problem and I'm wondering if anyone
has a solution. Essentially I want to call Supercollider using
runInterpreter() even though gLangMutex is locked. This comes up in
my bridge (see my previous post if you don't what I'm talking about)
when an Objective-C method is called from Supercollider which then
tries to send a message to an Objective-C subclass in Supercollider.
Here is what happens:
1- Some code which calls Objective-C is executed in the interpreter
(i.e. window.display where window is an NSWindow). [MyDocument
executeSelection:] is called which calls interpretPrintCmdLine in SC.
To call interpretPrintCmdLine a lock is taken out.
2- Eventually the Objective-C method is called which then sends a
message to a proxy object representing a Supercollider class.
3- The proxy object receives the message and tries to forward it
along to SC, but gLangMutex is locked so it deadlocks.
Is it possible to create a copy of the current state of the VM
(stack, thread contexts, etc.), call runInterpreter() and then
restore the VM to the saved state?