Prev Up Next
Go backward to Semáforos
Go up to Técnicas Usadas em Unix
Go forward to Variáveis de Condição

Spin-Locks

Mutexes que fazem busy-wait. Para operações rápidas:

void spin_lock(spinlock_t *s) {
  while (test_and_set(s) != 0) ;
}

Evitar tráfego desnecessário:

void spin_lock(spinlock_t *s) {
  while (test_and_set(s) != 0)
    while (*s != 0) ;
}

vitor@cos.ufrj.br

Prev Up Next