aboutsummaryrefslogtreecommitdiff
path: root/works/life/computer-network-experiment/Common.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'works/life/computer-network-experiment/Common.cpp')
-rw-r--r--works/life/computer-network-experiment/Common.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/works/life/computer-network-experiment/Common.cpp b/works/life/computer-network-experiment/Common.cpp
index 59c2f0f..fbdb2c8 100644
--- a/works/life/computer-network-experiment/Common.cpp
+++ b/works/life/computer-network-experiment/Common.cpp
@@ -34,9 +34,7 @@
#endif
}
-#ifdef WIN32
- WSACleanup();
-#endif
+ BeforeExit();
std::exit(1);
}
@@ -51,7 +49,7 @@ void InitWSA() {
}
#endif
-int Close(int socket) {
+int CloseSocket(int socket) {
#ifdef WIN32
return closesocket(socket);
#else
@@ -59,16 +57,21 @@ int Close(int socket) {
#endif
}
-int main() {
+void BeforeExit() {
#ifdef WIN32
- InitWSA();
+ WSACleanup();
#endif
- int c = Main();
+ SignalAndWaitForOutputThreadStop();
+}
+int main() {
#ifdef WIN32
- WSACleanup();
+ InitWSA();
#endif
+ int c = Main();
+
+ BeforeExit();
return c;
}