void factorvm::start_standalone_factor(int argc, vm_char **argv)
{
- printf("thread id is %d\n",GetCurrentThreadId());fflush(stdout);
+ //printf("thread id is %d\n",GetCurrentThreadId());fflush(stdout);
register_vm(GetCurrentThreadId(),this);
vm_parameters p;
default_parameters(&p);
return newvm->start_standalone_factor(argc,argv);
}
-VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv)
+VM_C_API void *start_standalone_factor_in_new_thread(int argc, vm_char **argv)
{
startargs *args = new startargs; // leaks startargs structure
args->argc = argc; args->argv = argv;
- start_thread(start_standalone_factor_thread,args);
+ void *handle = start_thread(start_standalone_factor_thread,args);
+ return handle;
}
}
{
VM_C_API void start_standalone_factor(int argc, vm_char **argv);
-VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv);
+VM_C_API void *start_standalone_factor_in_new_thread(int argc, vm_char **argv);
}
}
factor::start_standalone_factor(nArgs,szArglist);
+ //HANDLE thread = factor::start_standalone_factor_in_new_thread(nArgs,szArglist);
+ //WaitForSingleObject(thread, INFINITE);
LocalFree(szArglist);
FACTOR_STDCALL LONG exception_handler(PEXCEPTION_POINTERS pe)
{
- printf("exception handler %d\n",GetCurrentThreadId());
+ //printf("exception handler %d\n",GetCurrentThreadId());fflush(stdout);
factorvm *myvm = lookup_vm(GetCurrentThreadId());
PEXCEPTION_RECORD e = (PEXCEPTION_RECORD)pe->ExceptionRecord;
CONTEXT *c = (CONTEXT*)pe->ContextRecord;