[OSy] Poznamka k api

Tomas Pop Tomas.Pop at seznam.cz
Tue Oct 31 20:46:16 CET 2006


Zdravim, 
prave jsem se dostal k implementaci mutexu, delam je prostrednictvim semaforu, ale narazil jsem na nasledujici problemy:

1) 
funkce sem_down_timeout() vraci void, ale funkce mutex_lock_timeout() vraci int... takze zpusob implementace typu
int mutex_lock_timeout (struct mutex * mtx, const unsigned int usec){
	...
	res = sem_down_timeout(&(mtx->sem), usec);
        ...
        return res;
}
neni mozna. 
Vadi, kdyz si deklarujeme funkci sem_down_timeout()  jako int ? tetum by to nemelo vadit, ale asi to je v rozporu se zadanim.

2)
Druha nejasnost je spis moje neznalost Cecka, ale kdyz uz ten mejling list je...
vsechny mutexove funkce pouzivaji jako parametr struct mutex * mtx.

je nejaka moznost jak definovat struct mutex jako struct semaphore?
typedef nahlasi 
error: two or more data types in declaration specifiers	nnnkalisto/src	mutex.h	line 6	
 takze me nenapadlo nic hezciho nez deklaroavat

struct mutex {
	struct semaphore sem;
} ;

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?

Dik, Tomas Pop



More information about the NSWI004 mailing list