From ba613981459d3da988a97a92a86b5380b64ef072 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 27 Mar 2010 03:44:40 -0400 Subject: [PATCH] vm: clean up TLS usage --- vm/code_blocks.cpp | 2 +- vm/errors.cpp | 10 +++++----- vm/os-linux-arm.cpp | 2 +- vm/os-unix.cpp | 16 ++++++++-------- vm/os-unix.hpp | 2 +- vm/os-windows-nt.cpp | 6 +++--- vm/os-windows-nt.hpp | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/vm/code_blocks.cpp b/vm/code_blocks.cpp index e002b26afc..4741a68c54 100755 --- a/vm/code_blocks.cpp +++ b/vm/code_blocks.cpp @@ -149,7 +149,7 @@ void factor_vm::undefined_symbol() void undefined_symbol() { - return tls_vm()->undefined_symbol(); + return current_vm()->undefined_symbol(); } /* Look up an external library symbol referenced by a compiled code block */ diff --git a/vm/errors.cpp b/vm/errors.cpp index 8efcb3346f..37a9452744 100755 --- a/vm/errors.cpp +++ b/vm/errors.cpp @@ -17,13 +17,13 @@ void critical_error(const char *msg, cell tagged) std::cout << "critical_error: " << msg; std::cout << ": " << std::hex << tagged << std::dec; std::cout << std::endl; - tls_vm()->factorbug(); + current_vm()->factorbug(); } void out_of_memory() { std::cout << "Out of memory\n\n"; - tls_vm()->dump_generations(); + current_vm()->dump_generations(); exit(1); } @@ -146,7 +146,7 @@ void factor_vm::memory_signal_handler_impl() void memory_signal_handler_impl() { - tls_vm()->memory_signal_handler_impl(); + current_vm()->memory_signal_handler_impl(); } void factor_vm::misc_signal_handler_impl() @@ -156,7 +156,7 @@ void factor_vm::misc_signal_handler_impl() void misc_signal_handler_impl() { - tls_vm()->misc_signal_handler_impl(); + current_vm()->misc_signal_handler_impl(); } void factor_vm::fp_signal_handler_impl() @@ -166,7 +166,7 @@ void factor_vm::fp_signal_handler_impl() void fp_signal_handler_impl() { - tls_vm()->fp_signal_handler_impl(); + current_vm()->fp_signal_handler_impl(); } } diff --git a/vm/os-linux-arm.cpp b/vm/os-linux-arm.cpp index 07eda12186..8e131b9011 100644 --- a/vm/os-linux-arm.cpp +++ b/vm/os-linux-arm.cpp @@ -25,7 +25,7 @@ void flush_icache(cell start, cell len) : "r0","r1","r2"); if(result < 0) - tls_vm()critical_error("flush_icache() failed",result); + critical_error("flush_icache() failed",result); } } diff --git a/vm/os-unix.cpp b/vm/os-unix.cpp index 15f8132a63..f63b509cb5 100644 --- a/vm/os-unix.cpp +++ b/vm/os-unix.cpp @@ -17,23 +17,23 @@ THREADHANDLE start_thread(void *(*start_routine)(void *),void *args) return thread; } -pthread_key_t tlsKey = 0; +pthread_key_t current_vm_tls_key = 0; void init_platform_globals() { - if (pthread_key_create(&tlsKey, NULL) != 0) + if (pthread_key_create(¤t_vm_tls_key, NULL) != 0) fatal_error("pthread_key_create() failed",0); } void register_vm_with_thread(factor_vm *vm) { - pthread_setspecific(tlsKey,vm); + pthread_setspecific(current_vm_tls_key,vm); } -factor_vm *tls_vm() +factor_vm *current_vm() { - factor_vm *vm = (factor_vm*)pthread_getspecific(tlsKey); + factor_vm *vm = (factor_vm*)pthread_getspecific(current_vm_tls_key); assert(vm != NULL); return vm; } @@ -156,21 +156,21 @@ void factor_vm::dispatch_signal(void *uap, void (handler)()) void memory_signal_handler(int signal, siginfo_t *siginfo, void *uap) { - factor_vm *vm = tls_vm(); + factor_vm *vm = current_vm(); vm->signal_fault_addr = (cell)siginfo->si_addr; vm->dispatch_signal(uap,factor::memory_signal_handler_impl); } void misc_signal_handler(int signal, siginfo_t *siginfo, void *uap) { - factor_vm *vm = tls_vm(); + factor_vm *vm = current_vm(); vm->signal_number = signal; vm->dispatch_signal(uap,factor::misc_signal_handler_impl); } void fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap) { - factor_vm *vm = tls_vm(); + factor_vm *vm = current_vm(); vm->signal_number = signal; vm->signal_fpu_status = fpu_status(uap_fpu_status(uap)); uap_clear_fpu_status(uap); diff --git a/vm/os-unix.hpp b/vm/os-unix.hpp index 29378bb523..de60bbe15f 100644 --- a/vm/os-unix.hpp +++ b/vm/os-unix.hpp @@ -50,7 +50,7 @@ void sleep_nanos(u64 nsec); void init_platform_globals(); void register_vm_with_thread(factor_vm *vm); -factor_vm *tls_vm(); +factor_vm *current_vm(); void open_console(); void move_file(const vm_char *path1, const vm_char *path2); diff --git a/vm/os-windows-nt.cpp b/vm/os-windows-nt.cpp index 07d428fb49..d33a935f7f 100755 --- a/vm/os-windows-nt.cpp +++ b/vm/os-windows-nt.cpp @@ -22,9 +22,9 @@ void register_vm_with_thread(factor_vm *vm) fatal_error("TlsSetValue failed",0); } -factor_vm *tls_vm() +factor_vm *current_vm() { - factor_vm *vm = (factor_vm*)TlsGetValue(dwTlsIndex); + factor_vm *vm = (factor_vm *)TlsGetValue(dwTlsIndex); assert(vm != NULL); return vm; } @@ -122,7 +122,7 @@ LONG factor_vm::exception_handler(PEXCEPTION_POINTERS pe) FACTOR_STDCALL(LONG) exception_handler(PEXCEPTION_POINTERS pe) { - return tls_vm()->exception_handler(pe); + return current_vm()->exception_handler(pe); } void factor_vm::c_to_factor_toplevel(cell quot) diff --git a/vm/os-windows-nt.hpp b/vm/os-windows-nt.hpp index 8ad34ed147..d425a2c281 100755 --- a/vm/os-windows-nt.hpp +++ b/vm/os-windows-nt.hpp @@ -47,6 +47,6 @@ inline static THREADHANDLE thread_id() { return GetCurrentThread(); } void init_platform_globals(); void register_vm_with_thread(factor_vm *vm); -factor_vm *tls_vm(); +factor_vm *current_vm(); }