Exit main thread with winpr_exit to trigger resource cleanup.

When using pthread_once with destructors they are only called,
if each thread (including the main thread) is exited with pthread_exit.
Introducing winpr_exit as a wrapper for that purpose.
This commit is contained in:
Armin Novak
2018-02-09 12:25:45 +01:00
parent 7e26c54866
commit 2d58e96dcc
17 changed files with 67 additions and 49 deletions

View File

@@ -924,14 +924,14 @@ int main(int argc, char* argv[])
instance = freerdp_listener_new();
if (!instance)
return -1;
return winpr_exit(-1);
instance->PeerAccepted = test_peer_accepted;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
freerdp_listener_free(instance);
return -1;
return winpr_exit(-1);
}
/* Open the server socket and start listening. */
@@ -942,7 +942,7 @@ int main(int argc, char* argv[])
{
freerdp_listener_free(instance);
WSACleanup();
return -1;
return winpr_exit(-1);
}
if ((localOnly || instance->Open(instance, NULL, port)) &&
@@ -955,6 +955,6 @@ int main(int argc, char* argv[])
free(file);
freerdp_listener_free(instance);
WSACleanup();
return 0;
return winpr_exit(0);
}