Buffer threading problem fixes.
This commit is contained in:
parent
e16723c466
commit
51ebca43f1
1 changed files with 5 additions and 2 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue