added FACTOR_MULTITHREADED_TLS option

db4
Phil Dawes 2009-09-01 19:08:27 +01:00
parent f4af39b60e
commit e49fa4109d
1 changed files with 11 additions and 3 deletions

View File

@ -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)