TAS; Test-And-Set

WHAT

DEF

1. is HW synchronization primitive

HW primitive for synchronization

HOW

boolean TestAndSet(boolean &target) {
	boolean rv = target;
	target = true;
	return rv;
}

how to provide Mutual Exclusion?

Mutual Exclusion

boolean lock = false; 
 
do {
	while (TestAndSet(lock)); 
	{CRITICAL_SECTION};
	lock = false;
	{REMAINDER_SECTION};
}