Arrumei a classe sema.c, adicionei mais um iniciador do mutex para poder inicializar o mutex com zero. Realizei vários teste com vários valores para o tamanho da fila e número de threads e a princípio o programa agora está funcionando