Повторный Lock того же мьютекса

Что выведетJuniorпроверка — Спринт08-t003

Мьютекс захватывают, ставят defer Unlock, а затем на одной из веток захватывают его ещё раз. Что выведет программа?

main.gogo
1package main2 3import (4	"fmt"5	"sync"6)7 8func doWork() { fmt.Println("work") }9 10func main() {11	var mu sync.Mutex12	proceed := false13 14	mu.Lock()15	defer mu.Unlock()16	fmt.Println("locked")17 18	if proceed {19		return20	}21 22	mu.Lock()23	doWork()24	defer mu.Unlock()25}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.