Buffer threading problem fixes.

This commit is contained in:
Thulinma 2013-04-04 00:52:51 +02:00
parent e16723c466
commit 51ebca43f1

View file

@ -46,9 +46,10 @@ namespace Buffer {
StatsSocket = Socket::Connection("/tmp/mist/statistics", true); StatsSocket = Socket::Connection("/tmp/mist/statistics", true);
} }
if (StatsSocket.connected()){ if (StatsSocket.connected()){
Stream::get()->getReadLock();
StatsSocket.Send(Stream::get()->getStats()); StatsSocket.Send(Stream::get()->getStats());
StatsSocket.Send(double_newline); Stream::get()->dropReadLock();
StatsSocket.flush(); StatsSocket.SendNow(double_newline);
} }
} }
StatsSocket.close(); StatsSocket.close();
@ -62,10 +63,12 @@ namespace Buffer {
std::cerr << "Thread launched for user " << usr->MyStr << ", socket number " << usr->S.getSocket() << std::endl; std::cerr << "Thread launched for user " << usr->MyStr << ", socket number " << usr->S.getSocket() << std::endl;
#endif #endif
Stream::get()->getReadLock();
usr->myRing = thisStream->getRing(); usr->myRing = thisStream->getRing();
if (thisStream->getStream()->metadata && thisStream->getHeader().size() > 0){ if (thisStream->getStream()->metadata && thisStream->getHeader().size() > 0){
usr->S.SendNow(thisStream->getHeader()); usr->S.SendNow(thisStream->getHeader());
} }
Stream::get()->dropReadLock();
while (usr->S.connected()){ while (usr->S.connected()){
usleep(5000); //sleep 5ms usleep(5000); //sleep 5ms