Hello,
This has been descussed before (about a year ago), but I thought I'd
bring it up again.
When running McCLIM applications, I sometimes need to restart them
from the beginning. Here is the scenario :
* [run the application]
[application runs]
[interrupt the application]
Restarts:
0: [CONTINUE ] Return from BREAK.
1: [RESTART-EVENT-LOOP] Restart CLIM's event loop.
2: [DESTROY ] Destroy the process
Debug (type H for help)
(UNIX::SIGINT-HANDLER #<unused-arg> #<unused-arg> #.(SYSTEM:INT-SAP #x3FFFE558))
...
0] [do some debugging, backtracing, etc]
0] 2
Interrupted at #x100F3AC5.
Restarts:
0: [CONTINUE] Return from BREAK.
1: [ABORT ] Return to Top-Level.
Debug (type H for help)
(UNIX::SIGINT-HANDLER #<unused-arg> #<unused-arg> #.(SYSTEM:INT-SAP #x3FFFE338))
...
0] 1
* [try to restart the application]
Error in function COMMON-LISP::ASSERT-ERROR:
The assertion (NOT MULTIPROCESSING::*INHIBIT-SCHEDULING*) failed.
Restarts:
0: [CONTINUE] Retry assertion.
1: [ABORT ] Return to Top-Level.
Debug (type H for help)
(COMMON-LISP::ASSERT-ERROR (NOT MULTIPROCESSING::*INHIBIT-SCHEDULING*) NIL NIL)
...
0]
>From the discussion a year ago, it seems like the process was killed
when inside a without-scheduling and that this is still in effect
after the process was killed.
Questions: 1. Am I doing something I shouldn't?
2. Is this behavior on the part of CMUCL normal?
3. Is there anything I can do to remove the lock (just
setting MP::*INHIBIT-SCHEDULING* to nil doesn't seem to
help)?
Thanks in advance,
--
Robert Strandh
---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------