[OSy] navratova hodnota vlakna a platnost vlakna

..:: Urza ::.. urza at rdx2.cz
Fri Nov 4 12:59:22 CET 2011


Dobrý den.


Mám dva dotazy k vláknům.

1/ Funkce void *thread_start(void *data) má návratovou hodnotu. Co s ní? Přišlo by mi docela rozumné ji nějak vracet pomocí funkce thread_join, ale v jejím zadání nic takového popsáno není. U thread_join je mimo jiné popsáno, co má vracet v případě, že selže, ale není tam, co má vracet v případě úspěchu. Mám to chápat tak, že EOK a návratovou hodnotu funkce thread_start zahodí?

2/ Máme umět rozpoznávat u proměnných typu thread_t, jestli se jedná o platné vlákno. Něco takového je možné pouze jedním způsobem - držet si někde datovou strukturu, ve které budou spravována všechna vlákna (respektive pokud má někdo jiný způsob, tak bych ho rád znal, ale z ukazatele ani struktury imho nelze poznat, zda je platná, pokud zavrhneme řešení pomocí různých magic hodnot přímo v datové struktuře, což mi ale nepřijde jako moc čisté řešení - nebo stačí to poznat s nějakou velmi vysokou pravděpodobností?). Jsou nějaké požadavky na rychlost této struktury? Může být toto ověřování lineární vzhledem k počtu vláken v systému? Pochopitelně není problém to udělat rychleji, ale stojí to práci navíc :o(

Děkuji za odpověď,
Urza




More information about the NSWI004 mailing list