Paolo Amoroso writes:
I think it has to do with CMUCL multi process implementation. I was told that if you start the idle loop, then this problem will go away.
This works. But the way the idle loop is started in CMUCL makes it difficult to deliver applications.
If I deliver a McCLIM application containing the CMUCL executable, a Lisp image, and a shell script that launches the executable with the image as an argument, the high CPU usage is still there. Since the multiprocessing initialization function does not return, the only way I know of invoking it is calling MP::STARTUP-IDLE-AND-TOP-LEVEL-LOOPS interactively. But I can not expect users to do that: I would like to hide the Lisp toplevel to them.
I fully agree with you. I kept forgetting to do that so I had processes taking up 100% CPU on some of our servers. I therefore switched to SBCL that does not have this problem.
It might be possible to change CMUCL so that it always starts the idle loop. If this is not done by default, there may be some stability issues. But this is probably best discussed in the CMUCL mailing list.
That or the #lisp IRC channel.
Take care (and happy new year by the way),