aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2005-08-22 00:19:31 +0000
committerChristian Grothoff <christian@grothoff.org>2005-08-22 00:19:31 +0000
commit1ee308b40bda160135e580fe0090d67705738a3a (patch)
tree338f6f6c91af9cbf694e60ddc6573f38aa4bee2a
parentde5f84ab9cded0bb4298c30f3c8f2a1ece05332d (diff)
downloadgnunet-gtk-1ee308b40bda160135e580fe0090d67705738a3a.tar.gz
gnunet-gtk-1ee308b40bda160135e580fe0090d67705738a3a.zip
fixing 894
-rw-r--r--src/core/main.c25
-rw-r--r--src/plugins/fs/fs.c32
-rw-r--r--src/plugins/fs/upload.c1
3 files changed, 29 insertions, 29 deletions
diff --git a/src/core/main.c b/src/core/main.c
index f4185df7..977e041e 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -88,9 +88,20 @@ static int parseOptions(int argc,
88 return OK; 88 return OK;
89} 89}
90 90
91static void * shutdownCode(void * arg) {
92 Semaphore * sig = arg;
93 stopCron();
94 doneGNUnetGTKCommon();
95 SEMAPHORE_UP(sig);
96 return NULL;
97}
98
91int main(int argc, 99int main(int argc,
92 char *argv[]) { 100 char *argv[]) {
93 GtkWidget * root; 101 GtkWidget * root;
102 PTHREAD_T doneThread;
103 Semaphore * sig;
104 void * unused;
94 105
95 g_thread_init(NULL); 106 g_thread_init(NULL);
96 gtk_init(&argc, &argv); 107 gtk_init(&argc, &argv);
@@ -122,10 +133,18 @@ int main(int argc,
122 gtk_main(); 133 gtk_main();
123 gdk_threads_leave(); 134 gdk_threads_leave();
124 setCustomLogProc(NULL); 135 setCustomLogProc(NULL);
125 while (YES == gtkRunSomeSaveCalls()) ;
126 stopCron();
127 136
128 doneGNUnetGTKCommon(); 137 sig = SEMAPHORE_NEW(0);
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);
129 doneUtil(); 148 doneUtil();
130 149
131 return 0; 150 return 0;
diff --git a/src/plugins/fs/fs.c b/src/plugins/fs/fs.c
index a0d1e227..37bae3fd 100644
--- a/src/plugins/fs/fs.c
+++ b/src/plugins/fs/fs.c
@@ -115,17 +115,6 @@ static void eventProcessor(void * cls,
115 (void*) event); 115 (void*) event);
116} 116}
117 117
118static void * shutdownCode(Semaphore * sig) {
119 fs_download_stop();
120 fs_search_stop();
121 fs_collection_stop();
122 fs_namespace_stop();
123 fs_upload_stop();
124 FSUI_stop(ctx);
125 SEMAPHORE_UP(sig);
126 return NULL;
127}
128
129void init_fs() { 118void init_fs() {
130 GtkWidget * tab; 119 GtkWidget * tab;
131 GtkWidget * book; 120 GtkWidget * book;
@@ -153,21 +142,12 @@ void init_fs() {
153} 142}
154 143
155void done_fs() { 144void done_fs() {
156 PTHREAD_T doneThread; 145 fs_download_stop();
157 Semaphore * sig; 146 fs_search_stop();
158 void * unused; 147 fs_collection_stop();
159 148 fs_namespace_stop();
160 sig = SEMAPHORE_NEW(0); 149 fs_upload_stop();
161 if (0 != PTHREAD_CREATE(&doneThread, 150 FSUI_stop(ctx);
162 (PThreadMain)&shutdownCode,
163 sig,
164 64*1024))
165 DIE_STRERROR("pthread_create");
166 while (OK != SEMAPHORE_DOWN_NONBLOCKING(sig))
167 gtkRunSomeSaveCalls();
168 PTHREAD_JOIN(&doneThread,
169 &unused);
170 SEMAPHORE_FREE(sig);
171} 151}
172 152
173/* end of fs.c */ 153/* end of fs.c */
diff --git a/src/plugins/fs/upload.c b/src/plugins/fs/upload.c
index ff7856d8..259c8c86 100644
--- a/src/plugins/fs/upload.c
+++ b/src/plugins/fs/upload.c
@@ -374,6 +374,7 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
374 gtk_spin_button_get_value_as_int 374 gtk_spin_button_get_value_as_int
375 (GTK_SPIN_BUTTON(spin)), 375 (GTK_SPIN_BUTTON(spin)),
376 doIndex, 376 doIndex,
377 NO, /* FIXME: make option! */
377 meta, 378 meta,
378 gkeywordURI, 379 gkeywordURI,
379 keywordURI); 380 keywordURI);