package sync;

type Mutex struct {
    locked bool 
}

func (m *Mutex) Lock(){
    if !m.locked {
        // Se não está travado ativa o bloqueio
        m.locked = true
    } else {
        // Se estiver com bloqueio ativo aguarda liberação
        for ; m.locked ; {}
    }
}

func (m *Mutex) Unlock(){
    m.locked = false
}