[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] libjit ChangeLog jit/jit-thread.h jit/jit-threa...
From: |
Aleksey Demakov |
Subject: |
[dotgnu-pnet-commits] libjit ChangeLog jit/jit-thread.h jit/jit-threa... |
Date: |
Tue, 19 Dec 2006 22:05:23 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: libjit
Changes by: Aleksey Demakov <avd> 06/12/19 22:05:23
Modified files:
. : ChangeLog
jit : jit-thread.h jit-thread.c jit-init.c
Log message:
make sure that backend initialization is done only once
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.286&r2=1.287
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-thread.h?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-thread.c?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-init.c?cvsroot=dotgnu-pnet&r1=1.2&r2=1.3
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.286
retrieving revision 1.287
diff -u -b -r1.286 -r1.287
--- ChangeLog 17 Dec 2006 21:06:26 -0000 1.286
+++ ChangeLog 19 Dec 2006 22:05:23 -0000 1.287
@@ -1,8 +1,14 @@
+2006-12-20 Aleksey Demakov <address@hidden>
+
+ * jit/jit-thread.h, jit/jit-thread.c: add _jit_global_lock mutex.
+ * jit/jit-init.c (jit_init): make sure that initialization is done
+ only once.
+
2006-12-17 Klaus Treichel <address@hidden>
* include/jit/jit-function.h, jit/jit-function.c: Add the function
- jit_function_from_vtable_pointer to convert a vtable pointer back to the
- jit_function_t.
+ jit_function_from_vtable_pointer to convert a vtable pointer back to
+ the jit_function_t.
2006-11-29 Aleksey Demakov <address@hidden>
Index: jit/jit-thread.h
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-thread.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- jit/jit-thread.h 28 Oct 2004 01:23:09 -0000 1.2
+++ jit/jit-thread.h 19 Dec 2006 22:05:23 -0000 1.3
@@ -116,6 +116,11 @@
#endif
/*
+ * Mutex that synchronizes global data initialization.
+ */
+extern jit_mutex_t _jit_global_lock;
+
+/*
* Define the primitive monitor operations.
*/
Index: jit/jit-thread.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-thread.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- jit/jit-thread.c 28 Oct 2004 01:23:09 -0000 1.2
+++ jit/jit-thread.c 19 Dec 2006 22:05:23 -0000 1.3
@@ -34,6 +34,11 @@
#endif
#include <errno.h>
+/*
+ * Mutex that synchronizes global data initialization.
+ */
+jit_mutex_t _jit_global_lock;
+
#if defined(JIT_THREADS_PTHREAD)
/*
@@ -46,6 +51,8 @@
*/
static void init_pthread(void)
{
+ jit_mutex_create(&_jit_global_lock);
+
/* Allocate a thread-specific variable for the JIT's thread
control object, and arrange for it to be freed when the
thread exits or is otherwise terminated */
@@ -64,6 +71,8 @@
*/
static void init_win32_thread(void)
{
+ jit_mutex_create(&_jit_global_lock);
+
control_key = TlsAlloc();
}
Index: jit/jit-init.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-init.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- jit/jit-init.c 14 Aug 2006 19:21:19 -0000 1.2
+++ jit/jit-init.c 19 Dec 2006 22:05:23 -0000 1.3
@@ -37,9 +37,20 @@
@*/
void jit_init(void)
{
+ static int init_done = 0;
+
/* Make sure that the thread subsystem is initialized */
_jit_thread_init();
+ /* Make sure that the initialization is done only once
+ (requires the global lock initialized above) */
+ jit_mutex_lock(&_jit_global_lock);
+ if(init_done)
+ {
+ goto done;
+ }
+ init_done = 1;
+
#ifdef JIT_USE_SIGNALS
/* Initialize the signal handlers */
_jit_signal_init();
@@ -47,6 +58,9 @@
/* Initialize the backend */
_jit_init_backend();
+
+done:
+ jit_mutex_unlock(&_jit_global_lock);
}
/*@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] libjit ChangeLog jit/jit-thread.h jit/jit-threa...,
Aleksey Demakov <=