A method, apparatus, and program product share a resource in a computing
system that includes a plurality of computing cores. A request from a
second execution context ("EC") to lock the resource currently locked by
a first EC on a first core causes replication of the second EC as a third
EC on a third core. The first and third ECs are executed substantially
concurrently. When the first EC modifies the resource, the third EC is
restarted after the resource has been modified. Alternately, a first EC
is configured in a first core and shadowed as a second EC in a second
core. In response to a blocked lock request, the first EC is halted and
the second EC continues. After granting a lock, it is determined whether
a conflict has occurred and the first and second EC are particularly
synchronized to each other in response to that determination.