factorvm *vm;
-unordered_map<long,factorvm*> thread_vms;
-
-factorvm *lookup_vm(unsigned long threadid)
+void init_globals()
{
- return thread_vms[threadid];
+ init_platform_globals();
}
-void register_vm(unsigned long threadid, factorvm *thevm)
-{
- thread_vms[threadid] = thevm;
-}
-
-
void factorvm::default_parameters(vm_parameters *p)
{
p->image_path = NULL;
void factorvm::start_standalone_factor(int argc, vm_char **argv)
{
- register_vm(thread_id(),this);
vm_parameters p;
default_parameters(&p);
init_parameters_from_args(&p,argc,argv);
void* start_standalone_factor_thread(void *arg)
{
factorvm *newvm = new factorvm;
+ register_vm_with_thread(newvm);
startargs *args = (startargs*) arg;
newvm->start_standalone_factor(args->argc, args->argv);
return 0;
{
factorvm *newvm = new factorvm;
vm = newvm;
+ register_vm_with_thread(newvm);
return newvm->start_standalone_factor(argc,argv);
}