git-svn-id: svn://db.shs.com.ru/pip@268 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2016-09-21 10:39:53 +00:00
parent 24cbff2e0c
commit 617ce394af
2 changed files with 8 additions and 2 deletions

View File

@@ -1071,6 +1071,8 @@ void PIConnection::DevicePool::run() {
void __DevicePool_threadReadDP(void * ddp) {
PIConnection::DevicePool::DeviceData * dd((PIConnection::DevicePool::DeviceData * )ddp);
if (dd->dev == 0) {piMSleep(100); return;}
if (dd->dev->isClosed())
if (!dd->dev->open()) {piMSleep(dd->dev->reopenTimeout()); return;}
PIByteArray ba;
ba = dd->dev->read(dd->dev->threadedReadBufferSize());
// dd->dev->threadedRead(ba.data(), ba.size());

View File

@@ -141,6 +141,7 @@ PIPeer::PIPeer(const PIString & n): PIIODevice(), diag_d(false), diag_s(false),
PIMutexLocker pl(peers_mutex);
PIMutexLocker sl(send_mutex);
changeName(n);
setReopenTimeout(100);
read_buffer_size = 128;
self_info.dist = 0;
self_info.time = PISystemTime::current();
@@ -191,6 +192,7 @@ void PIPeer::timerEvent(void * data, int delim) {
syncPeers();
piMSleep(100);
pingNeighbours();
//piCoutObj << "isOpened" << isOpened();
break;
case 5: // every 5 s
checkNetwork();
@@ -556,7 +558,8 @@ bool PIPeer::mbcastRead(uchar * data, int size) {
pi.resetPing();
addPeer(pi);
buildMap();
//piCoutObj << "new peer \"" << pi.name << "\"" << " dist " << pi.dist;
// piCoutObj << "new peer \"" << pi.name << "\"" << " dist " << pi.dist;
// piCoutObj << mode() << opened_;
pi.dist++;
sendSelfInfo();
sendPeerInfo(pi);
@@ -804,6 +807,7 @@ bool PIPeer::openDevice() {
reinit();
diag_d.reset();
diag_s.reset();
//piCoutObj << "open...";
PIMutexLocker ml(peers_mutex);
if (trust_peer.isEmpty())
return !peers.isEmpty();
@@ -898,7 +902,7 @@ void PIPeer::changeName(const PIString &new_name) {
PIString PIPeer::constructFullPath() const {
PIString ret(fullPathPrefix() + "://");
ret << name() << ":" << trustPeerName();
ret << self_info.name << ":" << trustPeerName();
return ret;
}