Comment on In the C++ bag of tricks: scoped locksparentComments−cjensen12ySolvable by creating a Preprocessor macro which creates a unique and complex-named identifier. #define LOCKED(lk) for(int UNIQUE_ID=0; UNIQUE_ID<1 && !lk_lock(lk); lk_unlock(lk), UNIQUE_ID++) Use __LINE__ to help make the id unique.−VikingCoder12yThen you still can't forget and do this: lock(lk_var) lock(lk_var2) { lk_var = lk_var2; } Or this: lock(lk_var) { lock(lk_var2 { lk_var = lk_var2; } } Using the pre-processor to solve a regular, every day, hum-drum, solved-a-billion-times RAII problem is bad news.
Comments
Solvable by creating a Preprocessor macro which creates a unique and complex-named identifier.
Use __LINE__ to help make the id unique.Then you still can't forget and do this:
Or this: Using the pre-processor to solve a regular, every day, hum-drum, solved-a-billion-times RAII problem is bad news.