Sto lavorando su un codice che utilizza le librerie pthread e semaforo. La funzione sem_init funziona bene sulla mia macchina Ubuntu, ma su OS X la funzione sem_init non ha assolutamente alcun effetto. C'è qualcosa di sbagliato nella libreria o c'è un modo diverso di farlo? Questo è il codice che sto usando per testare.sem_init su OS X
sem_t sem1;
sem_t sem2;
sem_t sem3;
sem_t sem4;
sem_t sem5;
sem_t sem6;
sem_init(&sem1, 1, 1);
sem_init(&sem2, 1, 2);
sem_init(&sem3, 1, 3);
sem_init(&sem4, 1, 4);
sem_init(&sem5, 1, 5);
sem_init(&sem6, 1, 6);
I valori sembrano essere numeri casuali e non cambiano dopo la chiamata sem_init.
Si dovrebbe verificare il valore di ritorno di 'sem_init'. – bfontaine
Nota che in Mac OS X Yosemite (10.10) almeno, 'sem_init()', 'sem_destroy()' e 'sem_getvalue()' sono contrassegnati come 'deprecati' e generano avvisi del compilatore come risultato. –
@JonathanLeffler Oh, no. Non può funzionare in Mac OS X Yosemite (10.10.1). – vipygd