Copyright (c) 1993 Xerox Corporation. All rights reserved. This is a list of things to do to make PPCR multiprocessor-ready. The idea is for it to be able to use some lwp-like facility. 1. Some per-lwp data. It must include: current thread lwp id (for Lamport algorithm (?), signalling other lwps, etc) 2. System call interface: - which system calls are thread-safe? should partition into (at least) - string (presumed safe) - i/o (r/w/s) - sockets - streams (?) - ... - need at least a per-lwp errno; We can't in general copy errno on thread switch even if there is a per-lwp errno: a thread may move between lwp's while in the process of reading errno. - note we need to put the errno value into the standard place as well as the per-thread one, if we're going to be able to use library code. PCR←VD←WriteProtect{Enable,Disable} ! must keep enable count, but I think it already does that ... ... e.g. getcwd .. is that a library routine, or a system call. If library, what other things could mess with it? lock on shared wd? PCR←IOWDirImpl.c so we need to have a lock on the shared wd; this shows through in the interface -- we need to unlock it at the end. In general, library procs that deal with errno are special.