c
Akon32: upgrade().unwrap() создал тебе временную переменную типа Rc<Mutex<HashMap<TaskId, TaskResultReceiver>>>, которая живёт до ближайшей точки с запятой (если её никуда не сохранить). Дальше на этой переменной вызывается lock().await, которые возвращают тебе MutexGuard<HashMap<TaskId, TaskResultReceiver>>, лайфтайм которого должен быть строго меньше лайфтайма Rc (иначе получится, что ты держишь мьютекс, находящийся внутри помершего Rc)