[PD] calling free-method on pd quit (was Re: Problem with tcpserver from iemnet)

IOhannes m zmölnig zmoelnig at iem.at
Thu Feb 16 17:13:24 CET 2012


On 02/15/12 23:13, Roman Haefeli wrote:
>
> I have that as well, but it seems it is not specific to iemnet's
> classes. I experience that with many net classes in Pd and also - IIRC -
> with other programming languages that provide ways to open a listening

the problem is, that the socket does get not closed properly by Pd.
this is due to the "feature" of Pd, that it doesn't call the free-method 
(destructor) of an object, is you just "quit" Pd.
(if you explicitely delete the object, the free-method is called just 
fine; but not if you just do a [; pd quit(; see also my bug-report/patch 
about this on sf ( which seems to be down currently)

if the socket does not get closed properly, the OS will free it after 
some timeout.


> socket. On my box it is a matter of seconds until the bind address is
> freed. On an earlier Debian installation, it was often a matter of
> minutes (for instance, when the netpd server crashed), which was more
> annoying. I haven't figured out a way to avoid this.

the only way to avoid this, is to properly close the socket on exit.

depending on your OS, you can modify the timeout, in order to shorten 
your re-launch times.

on linux, try something like
# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle


mfgdasr
IOhannes



More information about the Pd-list mailing list