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 */
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);
}
void memory_signal_handler_impl()
{
- tls_vm()->memory_signal_handler_impl();
+ current_vm()->memory_signal_handler_impl();
}
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()
void fp_signal_handler_impl()
{
- tls_vm()->fp_signal_handler_impl();
+ current_vm()->fp_signal_handler_impl();
}
}
: "r0","r1","r2");
if(result < 0)
- tls_vm()critical_error("flush_icache() failed",result);
+ critical_error("flush_icache() failed",result);
}
}
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;
}
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);
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);
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;
}
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)
void init_platform_globals();
void register_vm_with_thread(factor_vm *vm);
-factor_vm *tls_vm();
+factor_vm *current_vm();
}