Ciao ragazzi, ho un problema nella progettazione di un server multithread con l'uso della libreria pthread.h
Il mio problema è il seguente: devo creare un thread che controlli se un file è modificato e ripeta questa operazione ogni NSEC secondi. In più ogni richiesta di un client deve essere gestita da un thread atto allo scopo. Io ho pensato a questo codice per il thread che controlla la modifica del file. Le funzioni utilizzate sono testate e funzionanti!
static void *isModified (void *args) {
while (TRUE) {
struct arguments *arg = (struct arguments *) args;
if (/*controllo se è stato modificato*/) {
/** Devo usare i semafori per prendere abr in mutua esclusione? */
freePerm(arg->root);
arg->root = NULL;
loadPerm(arg->file, &(arg->root));
}
sleep(NSEC)
}
}
Adesso viene il problema. Quando vado a creare l'altro thread per rispondere ad un client deve essere interrotto ogni NSEC secondi per far tornare in esecuzione "isModified" apparte in un punto che deve chiamare una funzione che lavora sul file.
Non so se sono riuscito a spiegarmi al meglio. se avete problemi sulla comprensione chiedete pure sono a vostra completa disposizione... spero di ricevere qualche aiuto perchè sono decisamente fermo