]> gitweb.factorcode.org Git - factor.git/commitdiff
added FACTOR_MULTITHREADED_TLS option
authorPhil Dawes <phil@phildawes.net>
Tue, 1 Sep 2009 18:08:27 +0000 (19:08 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:20:51 +0000 (08:20 +0100)
vm/vm.hpp

index b94ba16e003ec250f1f075b9fc55dfedc341b090..6570cf0c0437aac1cef0f2703010f177860fcdd6 100644 (file)
--- a/vm/vm.hpp
+++ b/vm/vm.hpp
@@ -690,11 +690,10 @@ struct factorvm {
 };
 
 
-// #define FACTOR_SINGLE_THREADED_SINGLETON
-#define FACTOR_SINGLE_THREADED_TESTING
+#define FACTOR_MULTITHREADED_TLS
 
 #ifdef FACTOR_SINGLE_THREADED_SINGLETON
-/* calls are dispatched using the singleton */
+/* calls are dispatched using the singleton vm ptr */
   extern factorvm *vm;
   #define PRIMITIVE_GETVM() vm
   #define PRIMITIVE_OVERFLOW_GETVM() vm
@@ -713,6 +712,15 @@ struct factorvm {
   #define SIGNAL_VM_PTR() tls_vm()
 #endif
 
+#ifdef FACTOR_MULTITHREADED_TLS
+/* uses thread local storage to obtain vm ptr */
+  #define PRIMITIVE_GETVM() tls_vm()
+  #define PRIMITIVE_OVERFLOW_GETVM() tls_vm()
+  #define VM_PTR tls_vm()
+  #define ASSERTVM() 
+  #define SIGNAL_VM_PTR() tls_vm()
+#endif
+
 #ifdef FACTOR_MULTITHREADED
   #define PRIMITIVE_GETVM() ((factorvm*)myvm)
   #define PRIMITIVE_OVERFLOW_GETVM() ((factorvm*)myvm)