]> gitweb.factorcode.org Git - factor.git/commitdiff
Start windows factor in a spawned thread (for testing)
authorPhil Dawes <phil@phildawes.net>
Mon, 24 Aug 2009 19:59:05 +0000 (20:59 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:20:09 +0000 (08:20 +0100)
vm/factor.cpp
vm/factor.hpp
vm/main-windows-nt.cpp
vm/os-windows-nt.cpp

index 6e31a02cab7e9c561526f2b92afe1304977bbd3a..bb30aae7ee8616a8a212bafd5cbbac13814f033d 100755 (executable)
@@ -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;
 }
 
 }
index 5c5b92dff21674382c751c08f31066c8be818dba..fbd6873c2893510b39c787b913cb3215b2e18b2e 100644 (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);
 
 }
index eaaad0f55b7e2e00d00eaea0fa6ea65dd6afdbd9..4a0fc2ae35b4515cc91170a1d905471fd82da506 100644 (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);
 
index a4cdbc66af4b187f076ae5b445f6370a74ab8905..b212287e5feda6d44fc34a62f7e8ebc6b77249ac 100755 (executable)
@@ -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;