[OSy] rozhrani
Vlastimil Babka
babka at d3s.mff.cuni.cz
Mon Oct 25 21:12:29 CEST 2010
On 10/25/2010 08:20 PM, as at strmilov.cz wrote:
> Dobry vecer,
> chtel bych se zeptat, jaky ma vyznam, ze thread_create vraci pointer na
> strukturu vlakna a ne primo strukturu, ackoliv ostatni funkce pracuji
> primo se strukturou. Znamena to, ze je potreba ho alokovat dynamicky
> pomoci malloc? Potom by spis davalo smysl, kdyby to thread_t byl jenom
> obaleny pointer do nejake pomocne datove struktury, kde by byla vsechna
> vlakna spravovana.
> Antonin Steinhauser
>
Dobry vecer,
thready pouzivaji rozhranni "druheho typu" (viz "Poznamky k rozhrannim"
v uvodu zadani), cili thread_t je neco jako identifikator, ktery ve
skutecnosti muze a nemusi byt ukazatel. O alokaci toho, co thread_t
identifikuje, se stara funkce thread_create, uzivatel rozhranni ne.
Funkce thread_create pritom nevraci pointer na thread_t (jak se zrejme
mylne domnivate), ale skutecne jen thread_t. Pouze k tomu nepouziva
navratovou hodnotu funkce, protoze ta je jiz vyuzita pro chybove kody
(typu int). Hodnotu thread_t tedy funkce vrati tak, ze ji zapise na
adresu predaneho pointeru na thread_t.
Volani teto funkce pak bude vypadat napriklad takto:
thread_t my_new_thread;
if (thread_create (&my_new_thread, ...) == EOK) {
// my_new_thread nyni obsahuje identifikator vytvoreneho threadu
...
}
Snad jsem to dostatecne ozrejmil,
Vlastimil Babka
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
More information about the NSWI004
mailing list