====== Esercitazione 12 ====== Esercizi con POSIX thread, segnali e socket AF_UNIX. ===== Esercizio 1 ===== Estendere l'Esercizio 3 dell'Assegnamento 9 (M thread produttori ed N thread consumatori) in modo tale da gestire il segnale SIGUSR1. In particolare, se il processo riceve il segnale SIGUSR1 dovra' essere stampato sullo standard output: la lunghezza corrente della coda e gli elementi che sono nella coda. NOTA: utilizzare un thread come gestore unico del segnale SIGUSR1 utilizzando la chiamata di libreria ''sigwait''. ===== Esercizio 2 ===== Realizzare un alarm clock server che riceve richieste di timeout (sveglia) da un certo numero di client connessi al server tramite socket ''AF_UNIX''. I client inviano richieste con il seguente formato: < numero di secondi, stringa di sveglia > Per ogni richiesta del client, il server attende per il ''numero di secondi'' richiesto e quindi invia la ''stringa di sveglia'' sulla socket dove ha ricevuto la richiesta. Il server deve essere in grado di gestire piu' richieste di attesa contemporanee da parte di diversi client.