[OSy] Poznamka k api

Tomas Kuthan tkuthan at gmail.com
Tue Oct 31 21:50:48 CET 2006


On 10/31/06, Tomas Tuma <tom.tuma at seznam.cz> wrote:
> > 2)
> > ale to vede k volanim se skaredym parametrem, napr.:
> > sem_down_timeout(&(mtx->sem), usec);
> > coz neni asi moc pekne. Mate nekdo nejaky napad? Nebo jsem nejak uplne mimo?
>
> To se mi nezda jako prilis elegantni reseni. Navic, pokud budes implementovat funkcnost
> danou konstantou DEBUG_MUTEX (viz zadani), budes zrejme chtit pridat do datove struktury
>mutexu jeste jednu polozku, kde si budes hlidat, kdo Ti ten mutex zamknul.

Ja bych zase souhlasil s Tomasem Popem. Mutexy jsem sice jeste
implementovat nezacal, ale uz jsem o nich premyslel a s nejvyssi
pravdepodobnosti pouziju nake podobne wrappovani, jake Tomas
popisoval. Co se tyce DEBUG_MUTEX, nic nam nebrani ten odkaz na
zamykatele pridat do struktury wrapperu:

struct mutex {
       struct semaphore sem;
       thread_t locking_thread;
} ;

Co se tyce volani
sem_down_timeout(&(mtx->sem), usec);
ktere se Tomasovi nelibilo, tak me esteticke citeni nikterak neurazi,
ja bych to takhle klidne udelal, resp. udelam.

A rekl bych, ze wrappovani pekne vystihuje semantiku mutexu jako
specialniho pripadu semaforu.

T.



More information about the NSWI004 mailing list