int block_update(int sk): funzione pubblica che invia il contenuto del blocco al client. La funzione riceve l'id del blocco interessato dal client identificato da sk, trova il blocco richiamando la find_block, trova il client assocciato al blocco richiamando la find_client, effettua un controllo sulla validità della copia locale e manda il valore del booleano valid al client. Se la copia locale risulta ancora valida termina le operazioni, altrimenti manda il contenuto del blocco al client e segnala la copia locale come valida settando il valore della variabile booleana valid a 1. Tutte le operazioni sul blocco sono effettuate in mutua esclusione. La funzione ritorna 1 in caso di successo e -1 in caso di errore.
|