git-svn-id: svn://db.shs.com.ru/pip@235 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -145,7 +145,7 @@ PIPeer::PIPeer(const PIString & n): PIIODevice() {
|
|||||||
CONNECTU(&timer, tickEvent, this, timerEvent);
|
CONNECTU(&timer, tickEvent, this, timerEvent);
|
||||||
prev_ifaces = PIEthernet::interfaces();
|
prev_ifaces = PIEthernet::interfaces();
|
||||||
no_timer = false;
|
no_timer = false;
|
||||||
initNetwork();
|
// initNetwork();
|
||||||
sendSelfInfo();
|
sendSelfInfo();
|
||||||
timer.addDelimiter(5);
|
timer.addDelimiter(5);
|
||||||
timer.start(1000);
|
timer.start(1000);
|
||||||
@@ -759,6 +759,7 @@ void PIPeer::pingNeighbours() {
|
|||||||
|
|
||||||
|
|
||||||
bool PIPeer::openDevice() {
|
bool PIPeer::openDevice() {
|
||||||
|
reinit();
|
||||||
PIMutexLocker ml(peers_mutex);
|
PIMutexLocker ml(peers_mutex);
|
||||||
if (trust_peer.isEmpty())
|
if (trust_peer.isEmpty())
|
||||||
return !peers.isEmpty();
|
return !peers.isEmpty();
|
||||||
@@ -858,14 +859,24 @@ PIString PIPeer::constructFullPath() const {
|
|||||||
|
|
||||||
|
|
||||||
int PIPeer::read(void *read_to, int max_size) {
|
int PIPeer::read(void *read_to, int max_size) {
|
||||||
while (read_buffer.isEmpty()) piMSleep(10);
|
read_buffer_mutex.lock();
|
||||||
PIMutexLocker ml(read_buffer_mutex);
|
bool empty = read_buffer.isEmpty();
|
||||||
|
read_buffer_mutex.unlock();
|
||||||
|
while (empty) {
|
||||||
|
read_buffer_mutex.lock();
|
||||||
|
empty = read_buffer.isEmpty();
|
||||||
|
read_buffer_mutex.unlock();
|
||||||
|
piMSleep(10);
|
||||||
|
}
|
||||||
|
read_buffer_mutex.lock();
|
||||||
if (!read_buffer.isEmpty()) {
|
if (!read_buffer.isEmpty()) {
|
||||||
PIByteArray ba = read_buffer.dequeue();
|
PIByteArray ba = read_buffer.dequeue();
|
||||||
|
read_buffer_mutex.unlock();
|
||||||
int sz = piMini(ba.size_s(), max_size);
|
int sz = piMini(ba.size_s(), max_size);
|
||||||
memcpy(read_to, ba.data(), sz);
|
memcpy(read_to, ba.data(), sz);
|
||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
|
read_buffer_mutex.unlock();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ Daemon::Daemon(): inited__(false), PIPeer(pisd_prefix + PISystemInfo::instance()
|
|||||||
tile_root->addTile(tile_fm);
|
tile_root->addTile(tile_fm);
|
||||||
|
|
||||||
CONNECTU(&screen, tileEvent, this, tileEvent)
|
CONNECTU(&screen, tileEvent, this, tileEvent)
|
||||||
|
reinit();
|
||||||
inited__ = true;
|
inited__ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user