[OSy] Datovy typ thread_t

Jakub Jermar jakub at jermar.eu
Fri Oct 19 17:56:16 CEST 2007


Andrej Krutak wrote:
> Mozno este jedna vec - malo by byt thread_t "cislo" nejakym sposobom 
> dlhodobejsie unikatne alebo je v OK, ak po thread_kill() dalsiemu vytvorenemu 
> vlaknu pridelime to iste cislo ako mal ten posledne zabity? Viem si 
> predstavit, ze by v takomto pripade mohli vzniknut zaujimave problemy napr. 
> ked by vlakna cez thread_join(id) cakali na nieco ine ako mysleli :-)

Kdyz by chtel nekdo joinovat thread pote, co tento thread udela exit, 
tak bych to oznacil za logickou chybu. Nejde jen o to, ze se muze 
joinout nejaky jiny thread nez ktery byl puvodne myslen, ale dokonce by 
se mohl "joinovat" nejaky uplne jiny typ objektu, ktery byl zrovna 
naalokovan v pameti uvolnene po puvodnim threadu.

Cili cilem by asi melo byt zamezit tomu, aby mel nekdo referenci na 
thread, ktery neexistuje ci nedovolit threadu zemrit dokud je na nej 
reference.

Omezeni dopadu takove logicke chyby by bylo mozne zavedenim nejakeho 
seznamu platnych threadu. Nevyresilo by to ovsen ten pripad, kdy nove 
alokovany objekt by byl take thread.

Jakub




More information about the NSWI004 mailing list