sync.go 331 B

12345678910111213141516171819
  1. package sync;
  2. type Mutex struct {
  3. locked bool
  4. }
  5. func (m *Mutex) Lock(){
  6. if !m.locked {
  7. // Se não está travado ativa o bloqueio
  8. m.locked = true
  9. } else {
  10. // Se estiver com bloqueio ativo aguarda liberação
  11. for ; m.locked ; {}
  12. }
  13. }
  14. func (m *Mutex) Unlock(){
  15. m.locked = false
  16. }