The immediate things to do are
PolledEventssetup with a linked-list approach managed centrally in the same way that
addPolledEventHandler(), etc. that pass the information to Tcl/Tk, Gtk, etc. when R is embedded in those applications.
To do this, we need to
eval()can be made non-recursive. This has the potential to make it possible for us to schedule different interpreters ourselves without the need for operating system threads.
Hopefully we will also be able to provide an interface which supports both process-level threads and distributed computing across machines.