Estoy trabajando en algún código que use las bibliotecas pthread y semáforo. La función sem_init funciona bien en mi máquina ubuntu, pero en OS X la función sem_init no tiene ningún efecto. ¿Hay algún problema con la biblioteca o hay una forma diferente de hacerlo? Este es el código que estoy usando para probar.sem_init en 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);
Los valores parecen ser números aleatorios, y no cambian después de la llamada sem_init.
Debe probar el valor de retorno de 'sem_init'. – bfontaine
Tenga en cuenta que en Mac OS X Yosemite (10.10) al menos, 'sem_init()', 'sem_destroy()' y 'sem_getvalue()' están marcados como 'obsoletos' y generan advertencias de compilación como resultado. –
@JonathanLeffler Oh, no. No puede funcionar en Mac OS X Yosemite (10.10.1). – vipygd