Re:[OSy] thread_wakeup

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


> V nasi verzi toho nijak neosetrujeme, vlakno muze probudit kdokoli, kdo na nej
> ma handle, ale to je v v okamziku, ktery tady zminujes obvykle prave jen fronta
> synchronizacniho primitiva.
> 

Jakym zpusobem toho dosahnete? Pokud si naprikald z vlakna A spustim vlakno B,
ktere mi bude cekat na ruznych synch. primitivech, mam v A stale jeho handle
a mohu ho probouzet takrka kdykoliv. A kdyz se trefim zrovna do okamziku, kdy
bude B zablokovano treba na mutexu a probudim ho, je to problem, protoze
B treba sdili mutex s C a A tim zpusobilo jeho nekorektni vstup do kriticke sekce.

Tom
> 
> > ------------ Původní zpráva ------------
> > Od: Tomas Tuma <tom.tuma at seznam.cz>
> > Předmět: [OSy] thread_wakeup
> > Datum: 09.11.2006 22:22:49
> > ----------------------------------------
> > 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
> > 
> > _______________________________________________
> > OSy mailing list
> > OSy at nenya.ms.mff.cuni.cz
> > http://nenya.ms.mff.cuni.cz/mailman/listinfo/osy
> > 
> > 
> > 
> _______________________________________________
> OSy mailing list
> OSy at nenya.ms.mff.cuni.cz
> http://nenya.ms.mff.cuni.cz/mailman/listinfo/osy
> 
> 
> 



More information about the NSWI004 mailing list