#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);
}

}