<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 14.02.5004.000">
<TITLE>RE: [mythtv-users] writeStringList error no data written on writeBlock (Python bindings?)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT COLOR="#1F497D" SIZE=2 FACE="DejaVu Sans">//Snip//</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT COLOR="#1F497D" SIZE=2 FACE="DejaVu Sans">On 9/8/2013 6:05 PM, Roger Siddons wrote:</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">I too have noticed these errors for a while on 0.26/fixes but they have no adverse effect on my system so I have never got around to investigating. However I've always had a worry/feeling that they are related to the silence commflagging script. </FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">Tonight we watched a recording whilst it was in progress (something we rarely do) and I was irritated to see that the adverts weren't being skipped. Some cursory debugging showed that these errors were the the cause. I had a brief chance to log the network (mythbackend --setverbose network) and ominously saw;</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">Sep 8 20:13:16 htpc mythlogserver: mythbackend[1959]: I Socket mythcorecontext.cpp:1203 (dispatch) MythEvent: SYSTEM_EVENT CLIENT_DISCONNECTED HOSTNAME htpc SENDER htpc<BR>
Sep 8 20:13:16 htpc mythlogserver: mythbackend[1959]: I Socket mythcorecontext.cpp:1203 (dispatch) MythEvent: LOCAL_SLAVE_BACKEND_ENCODERS_OFFLINE<BR>
Sep 8 20:13:16 htpc mythlogserver: mythbackend[1959]: I Socket mythcorecontext.cpp:1203 (dispatch) MythEvent: SYSTEM_EVENT CLIENT_DISCONNECTED HOSTNAME htpc SENDER htpc<BR>
Sep 8 20:13:16 htpc mythlogserver: mythbackend[1959]: I Socket mythcorecontext.cpp:1203 (dispatch) MythEvent: LOCAL_SLAVE_BACKEND_ENCODERS_OFFLINE<BR>
Sep 8 20:13:16 htpc mythlogserver: mythbackend[1959]: E CoreContext mythsocket.cpp:375 (writeStringList) MythSocket(11d1750:209): writeStringList: Error, No data written on writeB<BR>
lock (812 errors)<BR>
starts with: 660 BACKEND_MESSAGE[]:[]RECORDING_LIST_CHANGE UPDATE[]:[...</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">I believe these events relate to slave backends but I have none.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri">[Mark]</FONT></I></B></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">I also have no slave backends.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">Your dropbox link no longer works but I also see lots of;</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">Sep 8 19:26:07 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Playback<BR>
Sep 8 19:26:07 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 0)<BR>
Sep 8 19:26:07 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Monitor<BR>
Sep 8 19:26:07 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 1)<BR>
Sep 8 19:26:10 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Playback<BR>
Sep 8 19:26:10 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 0)<BR>
Sep 8 19:26:10 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Monitor<BR>
Sep 8 19:26:10 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 1)<BR>
Sep 8 19:26:19 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Playback<BR>
Sep 8 19:26:19 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 0)<BR>
Sep 8 19:26:19 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1395 (HandleAnnounce) MainServer::ANN Monitor<BR>
Sep 8 19:26:19 htpc mythlogserver: mythbackend[1959]: I ProcessRequest mainserver.cpp:1397 (HandleAnnounce) adding: htpc as a client (events: 1)<BR>
Sep 8 19:26:24 htpc mythlogserver: mythbackend[1959]: E CoreContext mythsocket.cpp:375 (writeStringList) MythSocket(1128f00:207): writeStringList: Error, No data written on writeBlock (815 errors)<BR>
starts with: 100816 BACKEND_MESSAGE[]:[]GENERATED_PIXMAP[]:[]OK[]:[]1005...<BR>
<BR>
which do seem closely related to the start of commflagging.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri">[Mark]</FONT></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri"></FONT></I></B></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri"> Thanks for the response Roger, greatly appreciated. And yes you are 100% spot on I am getting quite a significant number of those info messages</FONT></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> (>1000 on rough guess)</FONT></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> MainServer::ANN Monitor</FONT></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">/ MainServer::ANN Playback /</FONT></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> adding: xxxxx as a client. I didn’t understand the significance of those messages but yes I am a heavy user of the silence commflagging script (essentially for all my commflagging). And I have allowed up to 3 concurrent jobs so I could quite easily have 3 real time commflag jobs in progress at the same time.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri"></FONT></I></B></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> </SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">The errors all stopped when some recordings finish. I had 3 concurrent recordings at the time so I wonder if multiple commflagging jobs are a factor in it.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">My initial hypothesis is that the commflagging messages are being interpreted as a slave backend repeatedly connecting/disconnecting, which is overloading Myth's sockets somehow. I haven't seen any of your "socket unconnected" errors, but they arise from the same area.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">I don't have time/opportunity to investigate further at the moment but, if it's screwing your system, I'd suggest you simply disable the commflag messages and see if the errors re-occur. Just comment out the line containing "be.backendCommand" (and the following "if") in silence.py. Your programmes will still be commflagged but, if you watch in-progress recordings, you'll have to stop and restart playback to pick up the skiplist.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri">[Mark]</FONT></I></B></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">There</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"></FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">is a</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">defin</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">i</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">te</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> improvement in the situation from 0.26 to 0.27. In nearly 3 weeks since upgrading</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">this situation</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">has only happened once</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">compared with 4 or more times a day on 0.26.</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> Perhaps there is a code change in there somewhere that allows more sockets or better handles more sockets? Just guessing.</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> We regularly watch in progress recordings so I’ll hold off on the change suggested for now</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> (as it would be nice for the commercial skipping to happen without having to stop / restart)</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> however you are also 100% cor</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">rect that I have also had trouble with</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> the</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> automatic</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> commercial skipping</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">while watching</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">in progress recordings</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> (our</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">behaviour is to give a recording a 15min head start before starting to watch so can just skip through the commercials)</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">.</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"></FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">Although last night it all ‘just worked’ which was terribly pleasing as</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">it w</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">as</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">probably the first time we have managed to sit down, watch</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">TV</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">, have the adds</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">automatically skipped and then turn off without</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">m</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">e</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> having to grab the keyboard and do something</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">.</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> Certainly improves WAF.</FONT></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">And if Mr Wagner is watching, can he offer any advice on how to send occasional messages from a python script to the backend ? The full script is at</FONT></SPAN><SPAN LANG="en-au"> </SPAN><A HREF="http://www.mythtv.org/wiki/Commercial_detection_with_silence_for_UK_freeviewHD"><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><U><FONT COLOR="#0000FF" SIZE=2 FACE="DejaVu Sans">http://www.mythtv.org/wiki/Commercial_detection_with_silence_for_UK_freeviewHD#silence.py</FONT></U></SPAN><SPAN LANG="en-au"></SPAN></A><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans"> but the relevant code is;</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">db = MythTV.MythDB()<BR>
be = MythTV.BECache(None, False, db)</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans"># send advert skiplist to MythPlayers<BR>
tuplelist = [(str(x) + ':' + str(rec.markup.MARK_COMM_START), str(y) + ':' + str(rec.markup.MARK_COMM_END)) for x, y in rec.markup.getskiplist()]<BR>
mesg = 'COMMFLAG_UPDATE ' + progId + ' ' + ','.join([x for tuple in tuplelist for x in tuple])</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">result = be.backendCommand("MESSAGE[]:[]" + mesg)</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">Not great code but it was my first attempt at Python and I couldn't find any examples to copy...</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri">[Mark]</FONT></I></B></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">So IIUIC the hypothesis is that each time silence.py updates the skiplist and flags that an update has been made i</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">t gets a new socket to the database. But that socket doesn’t automatically close immediately</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> after the write</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> so the number of open sockets</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">increases until the number of permitted sockets is reached then things start to fail</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> (</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">which of course</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> happens quicker if multiple instances of silence.py are run</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">ning all calling their own sockets</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> – or if other MythTV elements are trying to also access the database</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">)</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">. So two possible solutions would</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">be to</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">either</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">work out</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"></FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">how to reuse a socket so that only one was needed per execution of the silence.py script o</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">r</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> work out how to close a socket immediately after it has been used so that t</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">here is not too many open at the same time</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">?</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans">I did notice </FONT></SPAN><SPAN LANG="en-au"></SPAN><A HREF="http://www.gossamer-threads.com/lists/mythtv/dev/548233"><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><U><FONT COLOR="#0000FF" SIZE=2 FACE="DejaVu Sans">http://www.gossamer-threads.com/lists/mythtv/dev/548233</FONT></U></SPAN><SPAN LANG="en-au"></SPAN></A><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT SIZE=2 FACE="DejaVu Sans"> but it's probably the way I'm using the bindings.</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN></P>
<P DIR=LTR><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri">[Mark]</FONT></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I><FONT COLOR="#1F497D" FACE="Calibri"></FONT></I></B></SPAN><SPAN LANG="en-au"><B><I></I></B></SPAN><SPAN LANG="en-au"><B><I> <FONT COLOR="#1F497D" FACE="Calibri"></FONT></I></B></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"> <FONT FACE="Calibri">Thanks again for your response, it has given me much to think about which is far better than staring at the screen and scratching</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri"> my head.</FONT></SPAN><SPAN LANG="en-au"></SPAN><SPAN LANG="en-au"></SPAN></P>
</BODY>
</HTML>