PIPeer important fix!

git-svn-id: svn://db.shs.com.ru/pip@116 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-04-20 12:02:02 +00:00
parent a76aa71d8c
commit 7673703b4b
2 changed files with 10 additions and 1 deletions

View File

@@ -149,6 +149,13 @@ PIPeer::PIPeer(const PIString & name_): PIObject() {
PIPeer::~PIPeer() { PIPeer::~PIPeer() {
destroyed = true; destroyed = true;
PIMutexLocker ml(peers_mutex);
piForeach (PeerInfo & p, peers)
if (p._data) {
p._data->dt_in.stop();
p._data->dt_out.stop();
p._data->t.stop(true);
}
timer.stop(); timer.stop();
diag_s.stop(); diag_s.stop();
diag_d.stop(); diag_d.stop();
@@ -161,6 +168,8 @@ PIPeer::~PIPeer() {
sendSelfRemove(); sendSelfRemove();
destroyMBcasts(); destroyMBcasts();
eth_send.close(); eth_send.close();
piForeach (PeerInfo & p, peers)
p.destroy();
} }

View File

@@ -333,7 +333,7 @@ void _PITimerImp_Pool::Pool::add(_PITimerImp_Pool * t) {
void _PITimerImp_Pool::Pool::remove(_PITimerImp_Pool * t) { void _PITimerImp_Pool::Pool::remove(_PITimerImp_Pool * t) {
//piCout << "remove ..."; //piCout << "remove ...";
lock(); lock();
to_remove.removeOne(t); to_remove << t;
unlock(); unlock();
//piCout << "remove done"; //piCout << "remove done";
} }