<div dir="ltr">Salutare!<div>Este necesara ca un thread (structura custom care simuleaza un thread) sa treaca si prin starea NEW, sau la initializare, obiectul poate fi returnat avand direct starea READY? Nu gasesc ceva specific ce thread-ul ar trebui sa execute ca sa fie in procesul 'de admisie' si astfel sa fie necesara ambele stari. Am doua variante (functionale amandoua) pentru acest proces, insa vreau sa ma asigur ca vreunul dintre ele nu este incomplet, nu respecta anumite reguli sau este ne-intuitiv.</div><div><br></div><div>1. Am un semafor pentru intreg contextul scheduler-ului. Structura se initializeaza iar thread-ul are starea NEW. Am un task care trebuie executat (functie). Nu trece in starea READY pana cand nu apelez pthread_create cu respectivul task. Imediat dupa pthread_create, fac wait pe semafor. Din acel task, eu imi schimb starea in READY si dau post pe semafor, iar parintele adauga respectivul thread in coada ready</div><div><br></div><div>2. Am un mutex pentru intreg contextul scheduler-ului. Se apeleaza so_exec. Fac lock pe un mutex. Structura se initializeaza cu thread-ul avand state-ul direct READY; adaug thread-ul in coada ready si dau unlock pe mutex, dupa care apelez reschedule() + return</div><div><br></div><div>Care varianta este mai 'naturala' sau corecta?<br>Multumesc!<br><br></div><div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Adrian Pop</div><div>Student @University Politehnica of Bucharest</div></div></div></div>
</div></div>