ciao, grazie per le altre info ma son (finalmente) riuscito a capire dov'era l'errore.
Praticamente ho (dovuto) implementare la semantica signal_and_urgent_wait su una variabile condition, solo che erroneamente nel thread che andavo a risvegliare era presente un'altra signal, quindi si creava una specie di strana cosa che raramente generava deadlock, perņ facendo 10000 cicli for si notava
Grazie per l'aiuto banryu79
p.s. anche se a nessuno interessa il mio problema e la soluzione l'ho scritto giusto per chiarezza