Will call SmartMutex.Mutable.lock, then execute action and return the result after SmartMutex.Mutable.unlock