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.




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