model_snapshot_space = create_mspace(numheappages * PAGESIZE, 1);
}
-volatile int forklock = 0;
+volatile int modellock = 0;
static void fork_loop() {
/* switch back here when takesnapshot is called */
pid_t forkedID;
fork_snap->currSnapShotID = snapshotid + 1;
- forklock = 1;
+ modellock = 1;
forkedID = fork();
- forklock = 0;
+ modellock = 0;
if (0 == forkedID) {
setcontext(&fork_snap->shared_ctxt);
static void fork_startExecution(ucontext_t *context, VoidFuncPtr entryPoint) {
/* setup an "exiting" context */
- char stack[128];
- create_context(&exit_ctxt, stack, sizeof(stack), fork_exit);
+ int exit_stack_size = 256;
+ create_context(&exit_ctxt, snapshot_calloc(exit_stack_size, 1), exit_stack_size, fork_exit);
/* setup the system context */
create_context(context, fork_snap->mStackBase, STACK_SIZE_DEFAULT, entryPoint);