On 14/05/12 19:43, Jonathan Wilkes wrote:
From: IOhannes m zmoelnigzmoelnig@iem.at On 2012-05-14 05:02, John Harrison wrote:
I've used those 2 objects a lot and thought they seemed pretty stable...
that's because the "trivial" case (where receiving data and changing the receive label are completely independent of each other (stackwise)) won't create much of a problem.
How do I manifest the bug?
See attached. Uses iem_r, though it should make no difference which settable-receive you use.
WARNING: clicking the "boom" message makes Pd segfault :WARNING
To understand this you need to know that pd stores a receiver in the symbol table. When there is only one receiver, it's just a pointer to the object, but when there's more than one there's a proxy object that contains a list. When you change a receiver it can end up deleting the proxy object if the receiver count for a symbol drops from 2 to 1. Deleting an object while code is executing in its context -> boom.
Claude