[PD] variable receive objects?
Jonathan Wilkes
jancsika at yahoo.com
Fri May 18 18:24:44 CEST 2012
----- Original Message -----
> From: Miller Puckette <msp at ucsd.edu>
> To: Jonathan Wilkes <jancsika at yahoo.com>
> Cc: Claude Heiland-Allen <claude at goto10.org>; "pd-list at iem.at" <pd-list at iem.at>
> Sent: Friday, May 18, 2012 12:06 PM
> Subject: Re: [PD] variable receive objects?
>
> I didn't realize this until reading about it in this thread - I don't
> know what
> to do about it either; it's been there for years, probably since I added the
> IEM guis to Pd (2000 or so?)
Yep. And for people who send 'receive' messages to iemguis in complex patches, it could
be quite a doozy, as the problem doesn't manifest until you get more than one
object using that receive-symbol. (Well, at least I couldn't get it to crash with just
one object...)
>
> There's no good way to fix it and it can't be taken out compatibly -
> perhaps
> it should just print a warning now.
>
> cheers
> Miller
>
> On Fri, May 18, 2012 at 08:40:54AM -0700, Jonathan Wilkes wrote:
>> ----- Original Message -----
>>
>> > From: Claude Heiland-Allen <claude at goto10.org>
>> > To: pd-list at iem.at
>> > Cc:
>> > Sent: Friday, May 18, 2012 7:08 AM
>> > Subject: Re: [PD] variable receive objects?
>> >
>> > On 14/05/12 19:43, Jonathan Wilkes wrote:
>> >>> From: IOhannes m zmoelnig<zmoelnig at 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.
>>
>> Thanks, Claude.
>>
>> I just want to point out that this affects every iemgui as well.
>>
>> >
>> >
>> > Claude
>> >
>> > _______________________________________________
>> > Pd-list at iem.at mailing list
>> > UNSUBSCRIBE and account-management ->
>> > http://lists.puredata.info/listinfo/pd-list
>> >
>>
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
More information about the Pd-list
mailing list