Skip to content
rexina edited this page Oct 24, 2014 · 5 revisions

Przemyślenia dotyczące mutexów:

  • trzymamy tablicę bitową oznaczającą stan mutexu (otwarty/zamknięty).
  • mutexy numerujemy od 0 do N (konfigurowalne)
  • mutex.give() ma odblokować wszystkie zadania:
    • iteracja po zablokowanych zadaniach:
      • jeśli zablokowane przez tego mutexa to wrzuć do schedulera
    • zaznacz że odblokowany

-mutex.take():

  • sprawdzić czy mutex jest wolny, jeśli nie:
    • wrzucić zadanie do tablicy zablokowanych oraz wywołać systicka

-mutex.time(timeout):

  • generujemy timeouta odblokowującego mutexa - po czasie timeout.
Clone this wiki locally