gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r1275 - in gnunet-gtk/src: core plugins/fs


From: grothoff
Subject: [GNUnet-SVN] r1275 - in gnunet-gtk/src: core plugins/fs
Date: Tue, 5 Jul 2005 14:47:31 -0700 (PDT)

Author: grothoff
Date: 2005-07-05 14:47:27 -0700 (Tue, 05 Jul 2005)
New Revision: 1275

Modified:
   gnunet-gtk/src/core/main.c
   gnunet-gtk/src/plugins/fs/fs.c
Log:
working around libtool, glibc, pthread limiations

Modified: gnunet-gtk/src/core/main.c
===================================================================
--- gnunet-gtk/src/core/main.c  2005-07-05 20:57:20 UTC (rev 1274)
+++ gnunet-gtk/src/core/main.c  2005-07-05 21:47:27 UTC (rev 1275)
@@ -123,10 +123,13 @@
                           (GCallback) method);
 }
 
+typedef void (*PlainCall)();
+
 static Plugin * loadPlugin(const char * name,
                           Plugin * next) {
   Plugin * p;
   void * lib;
+  PlainCall init;
 
   lib = loadDynamicLibrary("libgnunetgtkmodule_",
                           name);
@@ -140,6 +143,12 @@
   p->name = STRDUP(name);
   p->next = next;
   p->library = lib;
+  init = trybindDynamicMethod(lib,
+                             "init_",
+                             name);
+  if (init != NULL)
+    init();
+
   return p;
 }
 
@@ -179,6 +188,13 @@
 }
 
 static void unloadPlugin(Plugin * plug) {
+  PlainCall done;
+
+  done = trybindDynamicMethod(plug->library,
+                             "done_",
+                             plug->name);
+  if (done != NULL)
+    done();
   unloadDynamicLibrary(plug->library);
   FREE(plug->name);
   FREE(plug);

Modified: gnunet-gtk/src/plugins/fs/fs.c
===================================================================
--- gnunet-gtk/src/plugins/fs/fs.c      2005-07-05 20:57:20 UTC (rev 1274)
+++ gnunet-gtk/src/plugins/fs/fs.c      2005-07-05 21:47:27 UTC (rev 1275)
@@ -126,7 +126,7 @@
   return NULL;
 }
 
-void __attribute__ ((constructor)) fs_ltdl_init(void) {
+void init_fs(void) {
   GtkWidget * tab;
 
   tab
@@ -144,7 +144,7 @@
   fs_upload_start();
 }
 
-void __attribute__ ((destructor)) fs_ltdl_fini(void) {
+void done_fs(void) {
   PTHREAD_T doneThread;
   Semaphore * sig;
   void * unused;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]