Re:[OSy] thread_wakeup

Tomas Pop Tomas.Pop at seznam.cz
Thu Nov 9 22:49:47 CET 2006


Je to spis tak, ze jsme se zatim nesetkali s takovym problemem, takze jsme to neresili. jinak situace kterou popisujes u nas muze nastat taky, osetrenou ji nemame, ikdyz by to zjevne bylo dobre.
Tom


> ------------ Původní zpráva ------------
> Od: Tomas Tuma <tom.tuma at seznam.cz>
> Předmět: Re:[OSy] thread_wakeup
> Datum: 09.11.2006 22:37:12
> ----------------------------------------
> > 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
> > 
> > 
> > 
> _______________________________________________
> 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