Issue #94 [3/x]: Use new thinlock implementation
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 29 Dec 2016 21:48:21 +0000
changeset 3770 dadc56c104b7
parent 3769 8b2c403e95ef
child 3771 f488375df1c3
child 3774 b3e0091bc0ec
Issue #94 [3/x]: Use new thinlock implementation
JavaConstants.st
JavaVM.st
--- a/JavaConstants.st	Fri Dec 09 00:25:36 2016 +0000
+++ b/JavaConstants.st	Thu Dec 29 21:48:21 2016 +0000
@@ -28,8 +28,7 @@
 		ACC_ENUM ACC_VOLATILE ACC_TRANSIENT ACX_OBSOLETE ACX_INITIALIZED
 		ACX_INITIALIZING ACX_BREAKPNT ACX_HASHANDLER ACX_HASFINALLY
 		ACX_HASFINALIZE AXC_RESOLVED ACX_HASMULTIVERS ACX_CLONEABLE ACX_HASERRORS
-		ACX_R_VOID ACX_R_LONG ACX_R_DOUBLE LOCKWORD_TID_MASK
-		LOCKWORD_TID_SHIFT LOCKWORD_CNT__MASK LOCKWORD_CNT_SHIFT'
+		ACX_R_VOID ACX_R_LONG ACX_R_DOUBLE'
 	poolDictionaries:''
 	category:'Languages-Java-Support'
 !
@@ -105,13 +104,6 @@
         @global(JavaConstants:ACX_R_VOID)= __MKSMALLINT(__ACX_R_VOID);
         @global(JavaConstants:ACX_R_LONG)= __MKSMALLINT(__ACX_R_LONG);
         @global(JavaConstants:ACX_R_DOUBLE)= __MKSMALLINT(__ACX_R_DOUBLE);
-
-        @global(JavaConstants:LOCKWORD_TID_MASK)  = __MKSMALLINT(__LOCKWORD_TID_MASK);
-        @global(JavaConstants:LOCKWORD_TID_SHIFT)  = __MKSMALLINT(__LOCKWORD_TID_SHIFT);
-        @global(JavaConstants:LOCKWORD_CNT_MASK)  = __MKSMALLINT(__LOCKWORD_CNT_MASK);
-        @global(JavaConstants:LOCKWORD_CNT_SHIFT)  = __MKSMALLINT(__LOCKWORD_CNT_SHIFT);
-
-
 %}
 
     "Created: / 25-10-2011 / 09:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
--- a/JavaVM.st	Fri Dec 09 00:25:36 2016 +0000
+++ b/JavaVM.st	Thu Dec 29 21:48:21 2016 +0000
@@ -57,6 +57,14 @@
 	privateIn:JavaVM
 !
 
+!JavaVM primitiveDefinitions!
+%{
+
+#include "thinlocks.h"
+
+%}
+! !
+
 !JavaVM class methodsFor:'documentation'!
 
 copyright
@@ -4686,8 +4694,8 @@
 inflateLockFor: obj lockword: lw
      | threadId count mon |
 %{
-    threadId = __MKINT(__LOCKWORD_TID_GET(lw));
-    count =    __MKINT(__LOCKWORD_CNT_GET(lw));
+    threadId = __MKINT( stxLockwordGetPid((unsigned INT)lw) );
+    count =    __MKINT( stxLockwordGetCnt((unsigned INT)lw) );
 %}.
     ^ JavaMonitor for: obj thread: threadId nestedLockCount: count.