Hi,
Is anyone aware of any reasons not to use threads in a production ABCL program?
I'm preparing to deliver a program mostly written in Lisp, with a layer of Java on top so Java programmers can interact with it. The Lisp code runs a handful of daemon threads, some of which are lparallel worker threads. I'm specifically wondering whether errors raised inside threads will corrupt any of ABCL's internal state.
e.g. in an ABCL REPL, this corrupts the terminal:
(ql:quickload "bordeaux-threads") (use-package "BORDEAUX-THREADS") (make-thread #'(lambda () (error "testing"))) ;now press "enter" a couple of times.
It's as though multiple threads are trying to read from the terminal, not just write.
My program doesn't have a REPL, so if this is only a REPL problem, that's okay. I'm wondering if it's something bigger. If anyone on this list has used threads, and found any sort of instability because of them, I'd love to know. I'll then rewrite my program to not use threads.
Thanks in advance,
Vibhu
---- abcl-1.3.2 on OSX bordeaux-threads-0.8.3 ----
armedbear-devel@common-lisp.net