rem: int acquire (void) { return this->owner_ = this->lock_->acquire (); }
add: int acquire (void) { return this->owner_ = this->lock_->acquire_write (); }
context:   int acquire (void) { return this->owner_ = this->lock_->acquire (); }