can I just build externals that are usable by both ordinary Pd-vanilla and a (lib)Pd that has been compiled for multi-instance (PDINSTANCE) and/or multi-threading (PDTHREADS)?
and vice-versa: when I build an external with PDINSTANCE/PDTHREADS, can I use it in ordinary (single-instance, single-threaded) Pd?
my first tests (building a pseudo-Pd (based on libpd) that has both PDINSTANCE & PDTHREADS enabled), shows that this shouldn't actually pose a problem (i tried running the few test-suites I have (zexy & iemmatrix), and that went fine. i didn't actually test with two instances (threaded or not), which would expose a whole new set of problems :-)
the two things to take care of that I know of are:- using data that is static (or otherwise shared between threads) obviously needs special handling. - the convenience static variables exported by Pd ("s_float" and friends) should be replaced with explicitly generated symbols (gensym(...))
the latter is only needed, when trying to run a non-PDINSTANCE external in a PDINSTANCE host (or vice-versa).
anything else I am missing?i am thinking of distributing externals that are build with both PDINSTANCE & PDTHREADS, in order to make the usable for not-just-Pd-vanilla.
gfasmdr IOhannes -- please do not CC me for list-emails
OpenPGP_signature.asc
Description: OpenPGP digital signature
--- [email protected] - the Pd developers' mailinglist https://lists.iem.at/hyperkitty/list/[email protected]/message/524G7R7WI5QKPS3TQEGY3YMM5K3N64RU/
