int dm_block_wait(int ID): funzione pubblica che controlla la validità della copia locale del blocco. La funzione trova il server che contiene il blocco ID richiamando la find_server, trova il blocco interessato richiamando la find_block, invia il comando relativo all'operazione dal svolgere al server, invia l'ID del blocco interessato al server, riceve il controllo sulla validità della copia locale del blocco dal server e se la copia locale risulta invalida ritorna immediatamente, altrimenti, resta in attesa di ricevere dal server il segnale che notifica che la copia locale è diventata invalida. La funzione restituisce 1 in caso di successo e -1 in caso di errore (il server non risponde, il blocco non era stato associato ad alcun indirizzo di memoria locale).
|