]> gitweb.factorcode.org Git - factor.git/blob - vm/mvm-windows.cpp
Squashed commit of the following:
[factor.git] / vm / mvm-windows.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 DWORD current_vm_tls_key; 
7
8 void init_mvm()
9 {
10         if((current_vm_tls_key = TlsAlloc()) == TLS_OUT_OF_INDEXES)
11                 fatal_error("TlsAlloc() failed",0);
12 }
13
14 void register_vm_with_thread(factor_vm *vm)
15 {
16         if(!TlsSetValue(current_vm_tls_key, vm))
17                 fatal_error("TlsSetValue() failed",0);
18 }
19
20 factor_vm *current_vm()
21 {
22         factor_vm *vm = (factor_vm *)TlsGetValue(current_vm_tls_key);
23         assert(vm != NULL);
24         return vm;
25 }
26
27 }