+ if (type_ == Type::MUTEX_ASYNC_LOCK && other->type_ == Type::MUTEX_UNLOCK)
+ return false;
+
+ // Theorem 4.4.9: LOCK indep UNLOCK.
+ // any combination of wait and test is indenpendent.
+ if ((type_ == Type::MUTEX_WAIT || type_ == Type::MUTEX_TEST) &&
+ (other->type_ == Type::MUTEX_WAIT || other->type_ == Type::MUTEX_TEST))