factor/vm/mvm.cpp

32 lines
748 B
C++

#include "master.hpp"
namespace factor {
std::map<THREADHANDLE, factor_vm*> thread_vms;
struct startargs {
int argc;
vm_char** argv;
};
// arg must be new'ed because we're going to delete it!
void* start_standalone_factor_thread(void* arg) {
factor_vm* newvm = new_factor_vm();
startargs* args = (startargs*)arg;
int argc = args->argc;
vm_char** argv = args->argv;
delete args;
newvm->start_standalone_factor(argc, argv);
return 0;
}
VM_C_API THREADHANDLE start_standalone_factor_in_new_thread(int argc,
vm_char** argv) {
startargs* args = new startargs;
args->argc = argc;
args->argv = argv;
return start_thread(start_standalone_factor_thread, args);
}
}