aboutsummaryrefslogtreecommitdiff
path: root/src/core/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/main.c')
-rw-r--r--src/core/main.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/src/core/main.c b/src/core/main.c
index 977e041e..ca9919a5 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -88,20 +88,15 @@ static int parseOptions(int argc,
88 return OK; 88 return OK;
89} 89}
90 90
91static void * shutdownCode(void * arg) { 91static void * shutdownCode(void * unused) {
92 Semaphore * sig = arg;
93 stopCron(); 92 stopCron();
94 doneGNUnetGTKCommon(); 93 doneGNUnetGTKCommon();
95 SEMAPHORE_UP(sig);
96 return NULL; 94 return NULL;
97} 95}
98 96
99int main(int argc, 97int main(int argc,
100 char *argv[]) { 98 char *argv[]) {
101 GtkWidget * root; 99 GtkWidget * root;
102 PTHREAD_T doneThread;
103 Semaphore * sig;
104 void * unused;
105 100
106 g_thread_init(NULL); 101 g_thread_init(NULL);
107 gtk_init(&argc, &argv); 102 gtk_init(&argc, &argv);
@@ -133,18 +128,8 @@ int main(int argc,
133 gtk_main(); 128 gtk_main();
134 gdk_threads_leave(); 129 gdk_threads_leave();
135 setCustomLogProc(NULL); 130 setCustomLogProc(NULL);
136 131 run_with_save_calls(&shutdownCode,
137 sig = SEMAPHORE_NEW(0); 132 NULL);
138 if (0 != PTHREAD_CREATE(&doneThread,
139 &shutdownCode,
140 sig,
141 64*1024))
142 DIE_STRERROR("pthread_create");
143 while (OK != SEMAPHORE_DOWN_NONBLOCKING(sig))
144 gtkRunSomeSaveCalls();
145 PTHREAD_JOIN(&doneThread,
146 &unused);
147 SEMAPHORE_FREE(sig);
148 doneUtil(); 133 doneUtil();
149 134
150 return 0; 135 return 0;