hi all ...
i wrote two new externals for threaded patching:
detatch: the message to the inlet will be sent to the outlet, but all functions called as result of this message run in a helper thread.
join: the message to the inlet will be sent to the outlet during the next idle callback of the scheduler. it doesn't matter, which thread the message was coming from. messages from the main pd thread will be rescheduled.
detatch requires the latest devel_0_38 branch, since it uses a modified version of thomas grill's new stack management. join requires a recent version of devel_0_38, since it's using idle callbacks.
warning: both externals provide the possibility of threaded patching. beware of the risks: - not every pd object is thread-safe (if unsure, look at the source code) - pd is not completely thread-safe itself - everything that is triggered by the detatched message will be detatched. don't mix threaded and non-threaded message paths unless you know what you are doing. use the join external to synchronize with the main pd thread!!!! - if detatch/join crashes pd during a performance, don't complain ... i warned you - both detatch and join have an overhead ... so only use them, if you really need threaded patching, e.g. have a subpatch that has to run for quite some time and would interrupt audio...
if you still want to try it ... have a lot of fun ...
it's available on cvs only atm ...
cheers ... tim