threading.Lock(): context simplifies _send_user_message