Predem diky vsem za odpoved.
Na semaforu se mi uspi par threadu(cekaji na probuzeni jinymi thready) a pak se treba uzivatel rozmysli a zada do stdin EOF(nema je uz kdo probudit)
Urcite jde o semafor? Tam by se tohle nemelo resit - dojde k probuzeni cekajicich po uvolneni semaforu (sem_post) a pak by prece stacilo pockat na vsechna vlakna v mainu.
No pokud se nepletu, tak semafor funguje jako mutex(ten je pouze binarni), tim myslim, pride mi thread do dane sekce a zvysi/snizi counter semaforu. Pokud jsem v < 0 hodnotach, tak se mi thread "uspi" a ceka na zvyseni semaforu(jinym threadem)...pokud jsou hodnoty kladne, tak normlane pokracuje dale..
No a ja mam ted "uspane" thready na semaforu a neni nikdo kdo by zvysil counter onoho semaforu(neresme ted proc se tak deje....) Tak otazka znela, jak probudit tyto thready?
Jestli jak psal
MacHala hlavni thread po detekci EOF projde seznam uspanych threadu a zvysi counter semaforu tolikrat kolik jich spi ci poslat nejaky jiny zpusob(canceling, signaly... )
Ptam se proto, ze nevim co je korektni vzhledem k filozofii praci s threadama.
Dik