- Multiple CPUs
- the initial implementation
of the threaded version of S does not admit use of
multiple processors. This will be changed in the near
future but requires tedious modification of much of the code
but simplification of the current thread implementation.
Namely, we won't override the context switch code to swap
the evaluator object into the global variable accessed
by many of the routines in S.
- Multiple Threads Joining on
In Pthreads, a thread can join on another thread,
meaning that the first thread blocks waiting
until the joined thread terminates.
Only one thread can join on another.
In our versions, multiple threads can join on the same
thread. We have to figure out a mechanism
to release the cached return value from the Evaluator
Manager when it is no longer needed.
- This thread is not a user level created thread but
generated by the S engine at initialization.
- Daemon access conflict
- There is a conflict for Daemon like threads here.
Each thread needs access to the Daemon's task queue
but we don't want the return value
cached. This shouldn't be a problem as we can add elements
to the access list and also a Daemon should run throughout the life
of the session or be terminated infreqently so that caching
the return value is not a significant penalty.
- Imaginary Histogram Function
Hist() would be a function that takes a bin width and
number of bins (a bit odd!) and draws the resulting histogram.
It also takes the name of a device, so that we don't have
to lock the current device but instead can use a local device
and send the instructions directly to it.
Of course, in our implementation,
we do because the old graphics code uses global variables.
- Callback Categorization
Last modified: Fri Feb 28 09:56:34 1997