(in-package "KPML-I")

;;; File: threader.lisp
;;; KPML 2.0 --- John:Edinburgh:Feb98
;;;
;;; Definitions to absorb minor differences in non-standardized 
;;; multiprocessing offered under various Lisps. (This also absorbs
;;; and makes redundent the special ACLPC case in nothread-frame-starter
;;; in KPML 1.1.)

(defun PROCESS-RUN-FUNCTION (frame-name frame-starter &rest args)
  #+allegro (apply
	     #'mp:process-run-function 
	     `(,frame-name ,frame-starter ,@args))
  #+lispworks (apply
	       #'mp:process-run-function
	       `(,frame-name nil ,frame-starter ,@args))

  ;; base case, which also mops up for ACLPC since
  ;; Allegro Common Lisp (ACL3.0) for Windows lacks multiprocessing
  ;; altogether...
  #-(or allegro lispworks) (apply frame-starter args)
  )

