"The CSD is a global, shared among all processes. Much like environment variables, the sprite context, the VDU pipeline, and dozens of other things."
This is true, and the reason most programs don't rely on them except, possibly, to assume that they won't change between calls to Poll. If each program had it's own CSD, sprite context, etc. they wouldn't see a difference. Environment variables are another case; they should be shared but it probably wouldn't break anything to allow changes between Poll calls, but if that turned out to be the case, the shared environment could be copied on each Poll.
A lot can be achieved by allowing programs that are aware of the multi-processing capability of the OS to carry on working while waiting for a poll response, while avoiding doing anything that would affect other, more traditional programs.
ROLF allows processes to detatch from the Wimp polling process and be signalled when an event that it should take care of has occurred, and also to keep working while waiting for the Wimp to re-introduce the process into the traditional CMT environment.
Please login before posting a comment. Use the form on the right to do so or create a free account.
Search the archives
Today's featured article
Adventures with a Lego-cased A7K web server Having previously built desktop and laptop cases of out Lego bricks, model building Peter Howkins has turned his attentions towards crafting a slim box to slid his A7000 into a rack, alongside other rackmount servers. Having pieced together the housing, Peter puts a legacy RISC OS machine through its paces as an internet-facing server. 11 comments, latest by jess on 3/12/08 2:07PM. Published: 21 Nov 2008