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