Start windows factor in a spawned thread (for testing)

Phil Dawes 2009-08-24 20:59:05 +01:00
parent 41345583a5
commit 8008545b8e
4 changed files with 8 additions and 5 deletions

View File

@ -212,7 +212,7 @@ void factorvm::factor_sleep(long us)
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);
@ -243,11 +243,12 @@ VM_C_API void start_standalone_factor(int argc, vm_char **argv)
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;
}
}

View File

@ -2,6 +2,6 @@ namespace factor
{
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);
}

View File

@ -17,6 +17,8 @@ int WINAPI WinMain(
}
factor::start_standalone_factor(nArgs,szArglist);
//HANDLE thread = factor::start_standalone_factor_in_new_thread(nArgs,szArglist);
//WaitForSingleObject(thread, INFINITE);
LocalFree(szArglist);

View File

@ -18,7 +18,7 @@ s64 factorvm::current_micros()
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;