1. A machine-implemented method comprising: generating parallel processes in a data processing machine; effecting synchronization between the parallel processes using processor speculation in the data processing machine to speculatively execute one or more instructions that read-modify-write a lock variable associated with a critical section and end speculation before performing the critical section; and providing output resulting from the synchronized parallel processes; wherein the one or more instructions comprise an instruction including an operand indicating an address from which to start executing instructions if a mis-speculation occurs.