1. A method of initializing a control thread in a multi-thread software program, the method comprising: receiving an instruction to initialize a new control thread; determining whether the new control thread is a duplicate of an existing control thread; and setting a stack offset for the new control thread based on a result of the determining step.