Skip to content
  • Marius Gerbershagen's avatar
    multithreading: replace various synchronization objects by native mutexes · de5d56b4
    Marius Gerbershagen authored
    - Spinlocks have been replaced by ordinary locks. Without access to
      the underyling scheduler, spinlocks provide no performace benefit
      and may even be harmful in case of high contention.
    - Synchronization of process creation and exiting has been simplified.
      Instead of a spinlock, a barrier and atomic operations we now use
      only a single lock protecting the shared process state and a
      condition variable for implementing process joins.
    - Some locks which were implemented using Lisp objects now directly
      use a native mutex.
    - Our own mutex implementation has been removed as it is now unused.
    de5d56b4