diff options
Diffstat (limited to 'src/core/main.c')
-rw-r--r-- | src/core/main.c | 21 |
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 | ||
91 | static void * shutdownCode(void * arg) { | 91 | static 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 | ||
99 | int main(int argc, | 97 | int 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; |