peer deadlock

git-svn-id: svn://db.shs.com.ru/pip@37 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-03-17 13:41:51 +00:00
parent 4552599061
commit 94b4870d94
2 changed files with 12 additions and 6 deletions

View File

@@ -400,11 +400,14 @@ bool PIPeer::mbcastRead(uchar * data, int size) {
pi.dist++;
sendSelfInfo();
sendPeerInfo(pi);
peerConnected(pi.name);
peerConnectedEvent(pi.name);
ch = true;
//piCout << "new peer packet ok";
}
peers_mutex.unlock();
if (ch) {
peerConnected(pi.name);
peerConnectedEvent(pi.name);
}
break;
case 2: // remove peer
//piCout << "remove peer packet ..." << pi.name;
@@ -420,11 +423,14 @@ bool PIPeer::mbcastRead(uchar * data, int size) {
self_info.removeNeighbour(pi.name);
sendPeerRemove(pi.name);
buildMap();
peerDisconnected(pi.name);
peerDisconnectedEvent(pi.name);
ch = true;
//piCout << "remove peer packet ok";
}
peers_mutex.unlock();
if (ch) {
peerDisconnected(pi.name);
peerDisconnectedEvent(pi.name);
}
break;
case 3: // sync peers
//piCout << "sync packet ...";

View File

@@ -117,8 +117,8 @@ public:
const PeerInfo & selfInfo() const {return self_info;}
const PIMap<PIString, PIVector<PeerInfo * > > & _peerMap() const {return addresses_map;}
void lock() {mc_mutex.lock(); peers_mutex.lock();}
void unlock() {mc_mutex.unlock(); peers_mutex.unlock();}
void lock() {peers_mutex.lock();}
void unlock() {peers_mutex.unlock();}
EVENT2(dataReceivedEvent, const PIString &, from, const PIByteArray &, data);
EVENT1(peerConnectedEvent, const PIString &, name);