#define _TOFU_SLOCK_VARIABLE(s1, s2) s1##s2

#define TOFU_SLOCK_VARIABLE(s1, s2) _TOFU_SLOCK_VARIABLE(s1, s2)

#define TOFU_SLOCK(lock) tofu::ScopedLock TOFU_SLOCK_VARIABLE(slock, __LINE__)(lock)


#define TOFU_SLOCK_BRACE(lock) \

bool TOFU_SLOCK_VARIABLE(boolean, __LINE__) = true; \

for (TOFU_SLOCK(lock); TOFU_SLOCK_VARIABLE(boolean, __LINE__)!=false; SLOCK_VARIABLE(boolean, __LINE__)=false)


}