Portál AbcLinuxu, 9. května 2024 15:26


Dotaz: pthreads - detekce stavu

28.3.2008 09:09 Michal
pthreads - detekce stavu
Přečteno: 332×
Odpovědět | Admin
zdravim pouzivam pthreads a C/C++ , chci se zeptat zda jde z jednoho vlakna zjistit stav jineho, tj. jestli "pracuje", nebo jen ceka na prichozi socket (v mem pripade).

Diky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.3.2008 15:28 pepe
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
Odpovědět | | Sbalit | Link | Blokovat | Admin
sak mas pristup ke globalnim promennym, tak mej nejake pole, kam kazdej thread bude zaznamenavat svuj stav.
29.3.2008 10:56 Michal
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
jo to vim, ja jen myslel jestli neexistuje nejaka funkce busy nebo tak neco...
Bluebear avatar 29.3.2008 11:36 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
Mno... napadá mě tohle; uznávám, že je to poněkud přes ruku:
  • pomocí getpid() zjisti číslo svého procesu
  • pomocí gettid() zjisti číslo svého threadu (podle potřeby ho pak můžeš předat jinému threadu, který bude monitorovat stav)
  • v adresáři /proc/$TVOJE_PID/task/$TVOJE_TID najdeš soubory popisující daný thread (přesněji řečeno task, ale to je jedno), a v souboru "stat" nebo "status" najdeš jeho stav ("stat" je binární, "status" je textový).
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
29.3.2008 22:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
Jen člověk nesmí zapomínat, že sice možná nějak zjistí stav jiného threadu, ale než z té informace vyvodí nějaký závěr, už to stejně nemusí být pravda… :-)
30.3.2008 11:58 Michal
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
i tobe dik za napad, ale myslim ze zustanu u toho sdileneho pole :-) Co takhle sdilene pole idcek threadid[] do ktereho pokud thread zacne pracovat vlozi trebas nulu a kdyz dokonci praci tak tam zase vlozi svoje id? nejake vyhrady k tomuto reseni? A jeste jeden dotaz, je nejak pevne dano ze id threadu je cislo o nejakem minimalnim poctu cifer? nebo to muze byt libovolne?
30.3.2008 19:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: pthreads - detekce stavu
Dáno je jen to, že thread ID je typu pthread_t, ale už jsem viděl jak implementace, kde je to celočíselný typ, tak implementace, kde to byl pointer.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.