Skip to content
rexina edited this page Oct 30, 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
    • uruchom Tick()
  • 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