[host] simplify capture logic and fix re-init bug

This commit is contained in:
Geoffrey McRae
2018-11-02 21:37:26 +11:00
parent 9f67f42f94
commit d235d076c4
3 changed files with 144 additions and 125 deletions

View File

@@ -128,10 +128,28 @@ int run(struct StartupArgs & args)
if (!svc->Initialize(captureDevice))
return -1;
while (true)
int retry = 0;
bool running = true;
while (running)
{
if (!svc->Process())
break;
switch (svc->Process())
{
case PROCESS_STATUS_OK:
retry = 0;
break;
case PROCESS_STATUS_RETRY:
if (retry++ == 3)
{
fprintf(stderr, "Too many consecutive retries, aborting");
running = false;
}
break;
case PROCESS_STATUS_ERROR:
fprintf(stderr, "Capture process returned error");
running = false;
}
}
svc->DeInitialize();