[OSy] thread_wakeup

Tomas Tuma tom.tuma at seznam.cz
Thu Nov 9 22:22:30 CET 2006


Zdravim,

v zadani je uvedeno:
-------------------------------
 * int thread_wakeup (thread_t thr)

      Funkce odblokuje zadane vlakno. Volajici vlakno pokracuje v behu,
      neni v dusledku tohoto volani preplanovano. Funkce vraci EINVAL
      pokud je identifikace vlakna neplatna, jinak EOK.
------------------------------

V nasem kernelu jsou vlakna uspana na synchronizacnich primitivech v suspended
stavu a jsou probouzena pomoci thread_wakeup. Pokud by vsak thread_wakeup
na takto uspane vlakno zavolal nekdo jiny nez je synchronizacni primitivum,
nemelo by se podle meho nazoru takove vlakno probudit a volajicimu by se mela 
ohlasit nejaka chyba - vlakno je uspane, ale nechce byt vzbuzeno jinak nez samo
ocekava.

Vyse uvedena definice thread_wakeup to neumoznuje. Je dobry napad si zadani
"rozsirit"? Nebo se jedna o prapodivne specifikum naseho kernelu?

Pekny vecer vsem
Tom




More information about the NSWI004 mailing list