Salutare!
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.

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

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

Care varianta este mai 'naturala' sau corecta?
Multumesc!

-- 
Adrian Pop
Student @University Politehnica of Bucharest
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui