[mythtv] MythSocket class

Jim Westfall jwestfall at surrealistic.net
Tue May 30 04:27:59 UTC 2006


Isaac Richards <ijr at case.edu> wrote [05.29.06]:
> On Monday 29 May 2006 1:03 pm, Jim Westfall wrote:
> > Jim Westfall <jwestfall at surrealistic.net> wrote [05.28.06]:
> > > John P Poet <jppoet at gmail.com> wrote [05.28.06]:
> > > > Commented that line out on both backends, but it did not seem to help.
> > > > The slave backend (cobalt) is still not used.
> > > >
> > > > I have attached the resulting logs.
> > > >
> > > > John
> > >
> > > It made it further, but there is another issue.
> > >
> > > MythSocket::readBlock() call is forcing sockets to be put back onto
> > > readyread monitoring, when it might not be wanted.
> > >
> > > I will see about making a patch tomorrow.
> >
> > give this patch a try.
> 
> Hrm.  Don't really like making that explicit like that - have to modify 
> MythContext as well.  I think a check for if the socket is locked or not in 
> the select thread should accomplish mostly the same thing.
> 
> Or, we could do all reading of available data into a buffer in that select 
> thread.

It should only been needed if the readyRead() callback doesnt fully read 
what it needs to read from the socket.  The backend doesnt do any reading 
from the socket in readyRead(), its just hands it to a worker thread and 
returns.  The socket cant be put back onto the select list until 
ProcessRequest() returns, since multiple read/writeStringLists can occur 
as part of the processing.

I am not sure the normal sock->Lock() will work because 
PlaybackSock::SendReceiveStringList() also does a sock->Lock().

The other issue he is still having is the EncoderLink class since it 
interacts with the socket on its own to get free space and max bitrate on 
the slave backend.  It looks like once the slave backend registers with 
the master, the master takes control of the socket?  If that is the case 
we should be able to disable the socket from being on the select list 
once ANN SlaveBackend is seen.

jim




More information about the mythtv-dev mailing list