Wow, never would have thought about that... Tried it out right out, worked like a charm!
Thanks a lot, Martin! Alex On 14 June 2015 at 21:44, Martin Peach <[email protected]> wrote: > On Sun, Jun 14, 2015 at 3:36 PM, Alexandre Clément < > [email protected]> wrote: > >> Hello all! >> >> I'm creating an external which should only allow one copy loaded at the >> same time. >> Is there a way to check this upon creation? >> >> I tried going the same approach as checking if a receiver exists before >> attempting to send, but it doesn't seem to work. >> >> if (gensym("class_name")->s_thing) { >> post("Exists!"); >> return false; >> } >> >> Because gensym generates the symbol if it wasn't already in the list. > What I do is have a global variable outside the class struct and check if > it is not zero before instantiating a new object. > Since c is guaranteed to initialize globals to zero, the first object > created can set it to some other value. Maybe some more trickery will be > needed if the object is deleted and recreated, possibly the code is still > in memory and the global will have the non-zero value; in this case the > free routine should zero the global, > > Martin > >
_______________________________________________ Pd-dev mailing list [email protected] http://lists.puredata.info/listinfo/pd-dev
