(fix) make sure we don't sleep for too long when EAS processes need interruption

pull/222/head
Ludovic Marcotte 2016-09-29 13:00:48 -04:00
parent c317ae964d
commit 5db9f40f6a
2 changed files with 19 additions and 3 deletions

View File

@ -2355,8 +2355,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
}
else
{
int t;
[self logWithFormat: @"Sleeping %d seconds while detecting changes in Sync...", internalInterval-total_sleep];
sleep(sleepInterval);
for (t = 0; t < sleepInterval; t++)
{
if ([self easShouldTerminate])
break;
sleep(1);
}
total_sleep += sleepInterval;
}
}

View File

@ -2242,7 +2242,7 @@ void handle_eas_terminate(int signum)
defaults = [SOGoSystemDefaults sharedSystemDefaults];
defaultInterval = [defaults maximumPingInterval];
internalInterval = [defaults internalSyncInterval];
sleepInterval = (internalInterval < 5) ? internalInterval : 5;
sleepInterval = (internalInterval < 5) ? 5 : internalInterval;
if (theDocumentElement)
heartbeatInterval = [[[(id)[theDocumentElement getElementsByTagName: @"HeartbeatInterval"] lastObject] textValue] intValue];
@ -2383,8 +2383,16 @@ void handle_eas_terminate(int signum)
}
else
{
int t;
[self logWithFormat: @"Sleeping %d seconds while detecting changes in Ping...", internalInterval-total_sleep];
sleep(sleepInterval);
for (t = 0; t < sleepInterval; t++)
{
if (easShouldTerminate)
break;
sleep(1);
}
total_sleep += sleepInterval;
}
}