PISingleApplication fix and optimize
This commit is contained in:
@@ -49,10 +49,10 @@ bool PISingleApplication::isFirst() const {
|
||||
void PISingleApplication::sendMessage(const PIByteArray & m) {
|
||||
waitFirst();
|
||||
PIByteArray ba;
|
||||
int lm[2] = {0, 0};
|
||||
int lm[3] = {0, 0, 0};
|
||||
for (;;) {
|
||||
shm->read(lm, 8);
|
||||
if (lm[1] == 0) break;
|
||||
shm->read(lm, 12);
|
||||
if (lm[2] == 0) break;
|
||||
piMSleep(10);
|
||||
}
|
||||
ba << sacnt << sacnt << int(1) << m;
|
||||
@@ -85,10 +85,12 @@ void PISingleApplication::run() {
|
||||
int st_[2] = {sacnt, sacnt};
|
||||
shm->write(st_, 8);
|
||||
//piCoutObj << "write" << sacnt;
|
||||
readed = shm->readAll();
|
||||
int t1(0), t2(0), nm(0);
|
||||
readed >> t1 >> t2 >> nm;
|
||||
if (nm != 0 && t1 == t2) {
|
||||
int ri[3] = {0, 0, 0};
|
||||
const int hdr_sz = sizeof(int) * 3;
|
||||
shm->read(ri, hdr_sz);
|
||||
if (ri[2] != 0 && ri[0] == ri[1]) {
|
||||
readed.resize(shm->size() - hdr_sz);
|
||||
shm->read(readed.data(), readed.size(), hdr_sz);
|
||||
PIByteArray msg;
|
||||
readed >> msg;
|
||||
if (!msg.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user