Skip to content
Snippets Groups Projects
  1. May 01, 1998
  2. Jan 26, 1998
    • dtc's avatar
      Take more care to inhibit scheduling when modifying process state and · 70464fca
      dtc authored
      the *all-processes* list, function affected: make-process,
      destroy-process, restart-process, disable-process, and enable-process.
      
      Save and restore the process wait return value when a process is
      interrupted in case a process is interrupted before it reads the
      return value.
      70464fca
  3. Jan 25, 1998
    • dtc's avatar
      Bug fix for the setup of the initial binding stack in · 25393675
      dtc authored
      make-stack-group.  The binding stack size didn't match the actual
      vector length which was recently reduced, this typically led to heap
      and bindings stack corruption.  Better abstract the creation of the
      initial binding stack, adding a new function initial-binding-stack.
      25393675
  4. Jan 20, 1998
  5. Jan 17, 1998
  6. Jan 15, 1998
  7. Jan 13, 1998
  8. Jan 12, 1998
  9. Jan 11, 1998
  10. Jan 04, 1998
    • dtc's avatar
      Define a new function process-wait-until-fd-usable; similar to · 9e78a0f2
      dtc authored
      sys:wait-until-fd-usable but uses process-wait so avoids blocking if
      there are other runnable processes.
      
      Redefine the sleep function to use process-wait-with-timeout to avoid
      blocking if there are other runnable processes.
      9e78a0f2
  11. Jan 03, 1998
  12. Jan 02, 1998
  13. Jan 01, 1998
    • dtc's avatar
      Fix a bug in the scrubbing of the current stack-group's eval-stack. · 30a881ca
      dtc authored
      Update the eval-stack for the current stack-group when scrubbing to
      ensuring that the stack-top is valid and maybe flush an old stored
      vector.
      
      Completely scrub the stored binding stack for the current stack group.
      
      Implement the lock waiting in a separate function rather than
      inlining. This ensures that the wait predicate is fast native code so
      that locking in byte-compiled and interpreted code doesn't slow the
      scheduler.
      30a881ca
  14. Dec 31, 1997
    • dtc's avatar
      Add support for creating stack-groups with a fresh control stack, · 8e8f4c2a
      dtc authored
      rather than inheriting the current stack.
      
      Add support for scrubbing the binding and eval stacks of all the
      processes - call this before GC.
      8e8f4c2a
    • dtc's avatar
      Add the option of creating stack groups that are allocated fresh · e7093599
      dtc authored
      stacks rather than inheriting those of the current stack group. The
      alien stack, the eval stack, and the shallow bindings are allocated
      afresh for the new stack-group, but some work on the VOPs is needed to
      handle the control stack. Initial bindings for the following symbols
      are setup by default: * ** *** - + ++ +++ /// // /.
      
      Exploit this new option during the creation of new processes. The user
      visible change is that new processes now have a fresh set of bindings
      rather than inheriting those of the parent process.
      
      During the unwinding and rebinding of the binding stacks there is the
      possibility that *interrupts-enabled* will briefly set to true which
      may cause an unexpected interrupt. For now mask the interrupts during
      the binding stack switch; a better fix may be to implement these
      functions in assembly routines using pseudo-atomic to block
      interrupts.
      e7093599
  15. Dec 30, 1997
    • dtc's avatar
      New function shutdown-multi-processing to try and gracefully destroy · 8eae9f25
      dtc authored
      all the processes giving them some chance to unwinding, before
      shutting down multi-processing. Can be restarted by init-multi-processing.
      
      Ensure that processes are activated when sent an interrupt by
      destroy-process, otherwise inactive processes can't be destroyed.
      8eae9f25
    • dtc's avatar
      Allow the quitting of lisp from any process (this had only been · 3258c6c6
      dtc authored
      possible from the initial process). When a process throws to
      %end-of-the-world the exit value is noted in the *quitting-lisp*
      variable and further process creation is blocked. Have the idle loop
      try to gracefully destroy all the processes when *quitting-lisp*
      before exiting.
      3258c6c6
  16. Dec 29, 1997
  17. Dec 28, 1997
  18. Nov 22, 1997
  19. Nov 21, 1997
    • dtc's avatar
      Have the functions for unbinding and rebinding the bind stack check · a405427a
      dtc authored
      that the symbol slot is actually a symbol as this slot may be zero if
      a bind or unbind is interrupted - have it ignore these for now so that
      it as least proceeds rather than giving a SIGSEGV fault.
      
      Re-write of make-stack-group and stack-group-resume taking care not to
      mess with unwind-protect during a stack group switch.
      
      No longer need to disable the GENCGC pointer filter when starting the
      SIGALRM yield interrupt because the object allocation should now be
      interrupt safe now.
      
      Have the SIGALRM handler return quickly if the interrupt nesting is
      too great.
      a405427a
  20. Sep 29, 1997
  21. Sep 24, 1997
Loading