We have discovered an issue with the netsend and/or netreceive objects. If a
patch which is sending of receiving network data is closed with the connection
still open and transmitting/receiving data at a high rate, it seems that the
connection is sometimes not closed properly. If the same patch is reopened
without closing PD sometimes the connection claims to be valid, as in it gives
the error "error: netsend_connect: already connected", but data will not
transmit and closing the patch crashes PD. What could be causing the patch to
close improperly?
If you would like to try to recreate the error, I have included the text version
of our test patch. After opening the patch, connect the netsend object and the
toggle the metro on to send data. Without doing anything else to the patch,
simply close it with the X in the top right corner. Then reopen the patch,
without quitting PD and trying to connect the netsend object again. When we
did this, it sometimes gave us an error and closing the patch killed PD.
Sometimes it took a few times closing and reopening the patch for this to
occur. Could this be a race condition when freeing objects in a patch?
Any help would be greatly appreciated, thank you.
Our test patch:
#N canvas 568 250 450 300 10;
#X obj 105 179 netsend 1;
#X obj 237 113 + 1;
#X msg 237 91 1;
#X floatatom 268 161 5 0 0 0 - - -;
#X obj 300 19 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 147 144 prepend send;
#X obj 101 207 netreceive 9997 1;
#X obj 100 234 prepend set;
#X msg 103 264 7101;
#X obj 282 55 metro 10;
#X msg 110 36 connect localhost 9997;
#X connect 1 0 3 0;
#X connect 1 0 5 0;
#X connect 2 0 1 0;
#X connect 3 0 1 1;
#X connect 4 0 9 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 2 0;
#X connect 10 0 0 0;