[OSy] thread_join_timeout (thread_b, 0)

Martin Suchan martin.suchan at gmail.com
Sun Nov 4 17:49:49 CET 2007


Mel bych dotaz, v testu thread1 je volani funkce

result = thread_join_timeout (thread_b, 0);
if (result == EOK) {
   // we joined the thread
   thread_b_active = 0;
}

Pokud ale dobre rozumim zadani, tak spravne fungujici obsluha
thread_join_timeout nikdy nevrati EOK, pokud je cas cekani 0
mikrosekund. EOK se muze vratit pouze tehdy, kdyz v dobe volani
thread_join_timeout (thread_b, 0);
existuje vlakno thread_b a to neni mrtve.

Mam tomu rozumnet tak, ze tento test projde pouze tehdy, kdyz
implementace neni presne podle zadani, tj predpoklada, ze v "dobe"
cekani dojde k preplanovani a thread_b bude ukoncen drive, nez se
provede prvni kontrola na casovou platnost joinu?

Prosim o vysvetleni, dekuji.

Martin Suchan




More information about the NSWI004 mailing list