diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-29 14:10:22 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-29 14:10:22 +0000 |
commit | a4f7c437b828b67da222e971c54e855b4dd67be5 (patch) | |
tree | a0dde9e53b446f477991b8cfdaa498b1c969e105 /tcpserver.c | |
parent | ddcc2af3adab158592f195aa6b9e9d73be3f37a8 (diff) |
provide feedback to Pd main-thread whether sender-thread still exists
svn path=/trunk/externals/iem/iemnet/; revision=13300
Diffstat (limited to 'tcpserver.c')
-rw-r--r-- | tcpserver.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tcpserver.c b/tcpserver.c index 8a5673b..fc2cd0f 100644 --- a/tcpserver.c +++ b/tcpserver.c @@ -148,7 +148,7 @@ static int tcpserver_fixindex(t_tcpserver*x, int client) } /* ---------------- main tcpserver (send) stuff --------------------- */ - +static void tcpserver_disconnect_socket(t_tcpserver *x, t_floatarg fsocket); static void tcpserver_send_bytes(t_tcpserver*x, int client, t_iemnet_chunk*chunk) { if(x && x->x_sr && x->x_sr[client]) { @@ -166,6 +166,11 @@ static void tcpserver_send_bytes(t_tcpserver*x, int client, t_iemnet_chunk*chunk SETFLOAT(&output_atom[1], size); SETFLOAT(&output_atom[2], sockfd); outlet_anything( x->x_status_outlet, gensym("sent"), 3, output_atom); + + if(size<0) { + // disconnected! + tcpserver_disconnect_socket(x, sockfd); + } } } |