* Ports now have a mutex that can be used to implement cooperative
authorChris Hanson <org/chris-hanson/cph>
Tue, 25 Feb 1992 22:57:27 +0000 (22:57 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 25 Feb 1992 22:57:27 +0000 (22:57 +0000)
commitb2cbf46c891bbac47f8e530a97065f316a21b9e3
treed683510ae3e367bec163da93b16756dba2a0588d
parent10dd1e0a697b0a1743067b69ebf57e9d5f637506
* Ports now have a mutex that can be used to implement cooperative
  locking of the port.  Command loops use this mutex to guarantee that
  only one thread at a time uses the port.

* The standard error handler notices when it is about to start a REPL
  on a port that is locked by a thread different from the signalling
  thread, transforms the error into a derived thread error, and
  signals the derived error to the locking thread.

* The procedures KEYBOARD-INTERRUPT-THREAD and
  SET-KEYBOARD-INTERRUPT-THREAD! have been eliminated.  Keyboard
  interrupts are sent to the locking thread of the console I/O port.

* New procedure THREAD-MUTEX-OWNER returns the locking thread of a
  mutex, or #F indicating that the mutex is unlocked.

* New procedure WITH-THREAD-MUTEX-LOCKED locks a mutex over a dynamic
  extent.  If the calling thread already holds the lock, this
  procedure does not signal an error and does not unlock the mutex at
  the end of the extent.
v7/src/runtime/error.scm
v7/src/runtime/intrpt.scm
v7/src/runtime/make.scm
v7/src/runtime/port.scm
v7/src/runtime/rep.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/thread.scm
v7/src/runtime/version.scm
v8/src/runtime/make.scm
v8/src/runtime/runtime.pkg