[Ecls-list] Megapatch ahead
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Tue Sep 22 18:30:17 UTC 2009
Hi, a warning for everybody: stay with your current sources if you do
not want to play with new features or help me with the changes I will
be listing below.
I am now uploading my latest developments in the field of signals,
interrupts, exceptions, threads and the like. It is a mess of things
that are fixed by these changes but basically it consists on the
- ECL now implements a more clear model of handling unexpected events,
+ Hardware and software generated errors (floating point
exceptions, page faults...)
+ Externally generated interrupts and events
+ Interrupts sent from one thread to another.
- For events generated in the thread itself, the dispatch is normally
local and it amounts to the thread being interrupted and signalling an
error. When this happens may be controlled with the macros
ext:without-interrupts, ext:with-interrupts, etc.
- For events generated from the "outside", the detection and
processing of such events _may_ happen in a separate thread. This is
both safer and unavoidable in most operating systems. For instance,
Windows executes the handler for Ctrl-C in a separate thread.
I have tried to minimize the impact of these changes, but there will
be unavoidable changes in the interface. For instance, when going
multithreaded and pressing Ctrl-C in ECL, the environment will try to
suspend all threads and launch a debugger session in a SEPARATE
thread. This debugger will be able to interrupt other threads or
continue execution as usual. It is unavoidable to query INTERACTIVELY
the user which process should be interrupted or how.
If anybody has an idea of how to best design an interface to capture
these events (Ctrl-C and other asynchronous signals) without opening
debugger sessions, please speak!
Now, as usual, there will be instabilities, things to be fixed, etc,
etc. Help is welcome as usual.
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
More information about the ecl-devel