Patent ID: 11392427

Abstract:
Garbage collectors and other software may utilize performant lock-free multithreaded software. Unitary lock-free updates to a set of variables involves an updating value Z, release barriers and acquire barriers that enforce orderings on code execution, and atomicity resulting from variable alignment. Conveyance is accomplished with a values placing step and a values retrieving step. Values placing replaces a non-updated value in a variable Var1 with Z, executes a release barrier, replaces the non-updated values of other variables with update values, executes another release barrier, and replaces Z with the Var1 update value. Values retrieving reads from Var1 into a variable DestVar1A, executes an acquire barrier, reads from the other variables into respective destination variables, executes another acquire barrier, reads from Var1 into a variable DestVar1B, and repeats if DestVar1A is Z or if DestVar1A and DestVar1B are unequal. This solution conveys the update values without locks, as a unit.