[PD-announce] threaded patching externals: detatch / join

Tim Blechmann TimBlechmann at gmx.net
Mon Jan 3 19:02:45 CET 2005


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

-- 
mailto:TimBlechmann at gmx.de    ICQ: 96771783
http://www.mokabar.tk

After one look at this planet any visitor from outer space 
would say "I want to see the manager."
				      William S. Burroughs




More information about the Pd-announce mailing list