2014-11-17 11 views
16

Quando si esegue un deadlock a causa di un ciclo infinito, come posso uscire dal cider-repl?Come terminare il processo in sidro-repl?

Quando succede, devo uccidere il emacs, o anche riavviare il mio computer per uccidere il sidro-repl. C'è un modo migliore per risolvere questo?

risposta

12

La combinazione di tasti C-c C-c si interromperà da un loop al livello superiore del repl del sidro, lasciando emacs e il repl in esecuzione.

In un normale terminale repl, l'equivalente è C-c.

+0

come puoi vedere nell'immagine sopra, definisco una funzione chiamata random-ints e definisco un simbolo x usando "(def x (rest (random-ints 50)))", quindi x è una collezione infinita .e inserisco "(println x)", emacs ha fatto una pausa e non riesco ad inserire nulla. Quindi vado sul terminale e uccido emacs. – cranehuang

+0

@RenheHuang Non vedo alcuna immagine –

+0

@ShawnZhang mi dispiace per quello. Ho uno screenshot su cosa è successo, ma non riesco a caricarlo.so Descrivo i "random-ints" come segue: (defn random-ints [limite ] (lazy-seq (cons (limite di rand-int) (limite di random-ints)))). e il resto viene decrittato nel mio ultimo commento. – cranehuang