pub fn lock<Message>() -> Task<Message>