Fixed deadlock on sharedClient during shutdown

This commit is contained in:
Thulinma 2017-12-13 10:53:39 +01:00
parent b3cdf34fbc
commit 9f9c67b07e

View file

@ -1141,8 +1141,8 @@ namespace IPC {
} }
memset(empty, 0, payLen); memset(empty, 0, payLen);
} }
while (offsetOnPage == -1) { uint32_t attempts = 0;
{ while (offsetOnPage == -1 && (++attempts) < 20) {
for (char i = 'A'; i <= 'Z'; i++) { for (char i = 'A'; i <= 'Z'; i++) {
myPage.init(baseName.substr(1) + i, (4096 << (i - 'A')), false, false); myPage.init(baseName.substr(1) + i, (4096 << (i - 'A')), false, false);
if (!myPage.mapped) { if (!myPage.mapped) {
@ -1168,11 +1168,14 @@ namespace IPC {
break; break;
} }
} }
}
if (offsetOnPage == -1) { if (offsetOnPage == -1) {
Util::wait(500); Util::wait(500);
} }
} }
if (offsetOnPage == -1){
FAIL_MSG("Could not register on page for %s", baseName.c_str());
myPage.close();
}
if (empty) { if (empty) {
free(empty); free(empty);
} }