modifying a linked list while iterating over it
yes. And if (for this name) there is only one receiver (the one which is deleted when the message is received), then the end of the list is reached before trying to access next element, so it *should* not crash.
Strangely, trying to 'menuclose' self top-level patch (through [namecanvas]) crashes Pd, excepting when the patch isn't yet saved (newly created one).
That said, I think that @Dan could use dynamic patching; I've just successfully tested creating/destroying abstractions every 5 millis, while the abstractions were forwarding a value updated every millisecond from master patch, without any crash.
Antoine Rousseau http://www.metalu.net http://metalu.net __ http://www.metaluachahuter.com/ http://www.metaluachahuter.com/compagnies/al1-ant1/
2017-09-27 22:38 GMT+02:00 IOhannes m zmölnig zmoelnig@iem.at:
On 09/27/2017 04:51 PM, Antoine Rousseau wrote:
I just found out that if 2 instances of the same file are opened,
sending a
"pd-PatchName.pd menuclose" crashes Pd. I don't know if it is related to your problem.
iirc that has been reported on the tracker (on sf, i think) a while ago.
the problem is basically that you are modifying a linked list while iterating over it (which is forbidden in a lot of high level languages for a good reason).
afaict, iemguts' [canvasdelete] object provides a sane way to delete open patches (or instantiated abstractions). (but it's GPLed, so it might be of limited use if your target platform is libpd/iOS)
cmx IOhannes
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev