* src/vm/linker.h (linker_classrenumber_mutex): Use mutex instead of java
authorMichael Starzinger <michi@complang.tuwien.ac.at>
Wed, 20 Aug 2008 16:30:24 +0000 (18:30 +0200)
committerMichael Starzinger <michi@complang.tuwien.ac.at>
Wed, 20 Aug 2008 16:30:24 +0000 (18:30 +0200)
object for locking. Renamed from linker_classrenumber_lock.
* src/vm/linker.c: Adapted to above change.
* src/vm/builtin.c: Likewise.
* src/vm/class.c: Likewise.

src/vm/builtin.c
src/vm/class.c
src/vm/linker.c
src/vm/linker.h

index 58b4a5cc09d4cb360ef9de1e394d6775e1bc509d..ddf665c7998c7a46e47ac7f29f9215ae2569b3e2 100644 (file)
@@ -53,6 +53,7 @@
 #include "native/llni.h"
 
 #include "threads/lock-common.h"
+#include "threads/mutex.hpp"
 #include "threads/thread.hpp"
 
 #include "toolbox/logging.h"
@@ -698,7 +699,7 @@ bool builtin_fast_canstore(java_objectarray_t *oa, java_object_t *o)
                if (valuevftbl == componentvftbl)
                        return 1;
 
-               LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+               Mutex_lock(linker_classrenumber_mutex);
 
                baseval = componentvftbl->baseval;
 
@@ -713,7 +714,7 @@ bool builtin_fast_canstore(java_objectarray_t *oa, java_object_t *o)
                        result  = diffval <= (uint32_t) componentvftbl->diffval;
                }
 
-               LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+               Mutex_unlock(linker_classrenumber_mutex);
        }
        else if (valuedesc == NULL) {
                /* {oa has dimension > 1} */
@@ -765,7 +766,7 @@ bool builtin_fast_canstore_onedim(java_objectarray_t *a, java_object_t *o)
        if (valuevftbl == elementvftbl)
                return 1;
 
-       LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+       Mutex_lock(linker_classrenumber_mutex);
 
        baseval = elementvftbl->baseval;
 
@@ -779,7 +780,7 @@ bool builtin_fast_canstore_onedim(java_objectarray_t *a, java_object_t *o)
                result  = diffval <= (uint32_t) elementvftbl->diffval;
        }
 
-       LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+       Mutex_unlock(linker_classrenumber_mutex);
 
        return result;
 }
@@ -814,12 +815,12 @@ bool builtin_fast_canstore_onedim_class(java_objectarray_t *a, java_object_t *o)
        if (valuevftbl == elementvftbl)
                return 1;
 
-       LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+       Mutex_lock(linker_classrenumber_mutex);
 
        diffval = valuevftbl->baseval - elementvftbl->baseval;
        result  = diffval <= (uint32_t) elementvftbl->diffval;
 
-       LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+       Mutex_unlock(linker_classrenumber_mutex);
 
        return result;
 }
index 1b547b3bfd74ce0c102d8354642fcafefe02466b..d4d3d989bae3aace9340630cad465dbbd3992208 100644 (file)
@@ -39,6 +39,7 @@
 #include "native/llni.h"
 
 #include "threads/lock-common.h"
+#include "threads/mutex.hpp"
 
 #include "toolbox/logging.h"
 
@@ -1475,12 +1476,12 @@ bool class_isanysubclass(classinfo *sub, classinfo *super)
                if (sub->flags & ACC_INTERFACE)
                        return (super == class_java_lang_Object);
 
-               LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+               Mutex_lock(linker_classrenumber_mutex);
 
                diffval = sub->vftbl->baseval - super->vftbl->baseval;
                result  = diffval <= (uint32_t) super->vftbl->diffval;
 
-               LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+               Mutex_unlock(linker_classrenumber_mutex);
        }
 
        return result;
index 622935cdddca462376cf7f42dcbd268b8aa25c43..21c026aee70cf15e10521fe8dbc7c0c89ba9a1b0 100644 (file)
@@ -35,6 +35,7 @@
 #include "native/native.h"
 
 #include "threads/lock-common.h"
+#include "threads/mutex.hpp"
 
 #include "toolbox/logging.h"
 
@@ -92,7 +93,7 @@ classinfo *resolve_classref_or_classinfo_eager(classref_or_classinfo cls, bool c
 static s4 interfaceindex;       /* sequential numbering of interfaces         */
 static s4 classvalue;
 
-java_object_t *linker_classrenumber_lock;
+Mutex *linker_classrenumber_mutex;
 
 
 /* private functions **********************************************************/
@@ -121,11 +122,9 @@ void linker_preinit(void)
        interfaceindex = 0;
 
 #if defined(ENABLE_THREADS)
-       /* create the global lock object */
+       /* create the global mutex */
 
-       linker_classrenumber_lock = NEW(java_object_t);
-
-       LOCK_INIT_OBJECT_LOCK(linker_classrenumber_lock);
+       linker_classrenumber_mutex = Mutex_new();
 #endif
 
        /* Link the most basic classes. */
@@ -1119,7 +1118,7 @@ static arraydescriptor *link_array(classinfo *c)
 
 static void linker_compute_subclasses(classinfo *c)
 {
-       LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+       Mutex_lock(linker_classrenumber_mutex);
 
        if (!(c->flags & ACC_INTERFACE)) {
                c->nextsub = NULL;
@@ -1137,7 +1136,7 @@ static void linker_compute_subclasses(classinfo *c)
 
        linker_compute_class_values(class_java_lang_Object);
 
-       LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+       Mutex_unlock(linker_classrenumber_mutex);
 }
 
 
index a11f80cd00580fa0e54918318864747d9c0ef771..2e518bb84c87f46e5eeb66fa07d6adf2431eba53 100644 (file)
@@ -36,6 +36,8 @@ typedef struct primitivetypeinfo primitivetypeinfo;
 #include "config.h"
 #include "vm/types.h"
 
+#include "threads/mutex.hpp"
+
 #include "vm/class.h"
 #include "vm/references.h"
 
@@ -136,7 +138,7 @@ struct arraydescriptor {
 /* This lock must be taken while renumbering classes or while atomically      */
 /* accessing classes.                                                         */
 
-extern java_object_t *linker_classrenumber_lock;
+extern Mutex *linker_classrenumber_mutex;
 
 
 /* function prototypes ********************************************************/