2012-05-05 9 views
5

Ero preoccupato che lo stato Acido generasse molti file di eventi e checkpoint e l'utente "stepcut" mi ha detto che esisteva un'implementazione della soluzione in acido chiamata createArchive che eliminava vecchi eventi .. . Il problema è che quando lo uso ottengo questo errore:Discussione bloccata indefinitamente - Haskell - Stato acido

<fileName.exe>: thread blocked indefinitely in an MVar operation 

penso che i suoi permessi W7 dovuti, ma quando ho eseguito sotto 'admin' i cant get a vedere console, ma gli eventi file sono ancora lì quindi presumo che non funzioni.

Se eseguo il codice tramite ghci, non ottengo un errore, ma blocca la console, quindi ho bisogno di CtrlC per continuare a lavorare.

qualcuno ha ricevuto questo errore?

+2

Potrebbe essere correlato a un bug in GHC 7.4.1: http://hackage.haskell.org/trac/ghc/ticket/5943 – vivian

+0

Dice che è corretto, quindi se ho scaricato haskell plataform dovrei essere in grado di lavorare con esso, giusto! Grazie – Illiax

+1

@Iliax, dubito che la più recente Haskell Platform abbia ancora 7.4.2. È in un ciclo di rilascio più lungo di GHC. – vivian

risposta

2

Non ha nulla a che fare con le autorizzazioni. L'errore si verifica quando si tenta di leggere da uno MVar vuoto a cui nessuno può scrivere, o allo stesso modo provare a inserire un valore in uno MVar che è già pieno e non verrà svuotato. Significa che c'è un bug nel codice di qualcuno.

Se Vivian (nei commenti) si trova proprio su questo di essere legato alla this GHC bug poi this related bug suggerisce che la compilazione con -fno-state-hack potrebbe bastare come una soluzione per il vostro problema. Sembra che il bug sia esistito almeno da GHC 7.2.2, ma è stato risolto nel GHC 7.4.2 (finora non rilasciato).

In alternativa, potrebbe essere solo un bug in acid-state, che sembra fare un uso significativo di MVar s. In tal caso, assicurati di utilizzare l'ultima versione della libreria, quindi prova a creare un semplice banco di prova in modo che altre persone possano verificare il problema.

+0

Questo non funziona, anche se non ho capito il bug correlato u.u – Illiax

+0

ho ampliato la risposta un po '; guarda anche il commento che ho lasciato alla tua domanda. Se non è il bug di GHC, potrebbe essere un bug 'acid-state', ma è difficile dirlo senza ulteriori informazioni. –

2

Questo errore è scomparso dal mio programma dopo aver compilato il mio programma senza ottimizzazioni, come in ghc --make -O0 Main.