(inferior-threads '())
(recursive-edit-continuation #f)
(recursive-edit-level 0))
+ (thread-put! editor-thread 'name edwin-editor)
(editor-grab-display edwin-editor
(lambda (with-editor-ungrabbed operations)
(let ((message (cmdl-message/null)))
thunks)
(cdr thunks)))
((null? thunks))
- (create-thread root-continuation (car thunks)))
+ (create-thread root-continuation
+ (car thunks)
+ (car thunks)))
(top-level-command-reader
edwin-initialization)))))))
message)
(weak-set-cdr! (car threads) #f))
(loop (cdr threads) threads)))))))
-(define (start-standard-polling-thread interval output-processor)
+(define (start-standard-polling-thread interval output-processor
+ #!optional name)
(let ((holder (list #f)))
(set-car! holder
(register-inferior-thread!
(exit-current-thread unspecific))
(registration
(inferior-thread-output! registration))))
- (sleep-current-thread interval))))))
+ (sleep-current-thread interval)))
+ name)))
(detach-thread thread)
thread)
output-processor))
(lambda ()
(signal-thread-event editor-thread
(lambda ()
- (unwind-inferior-repl-buffer buffer)))))))))))
+ (unwind-inferior-repl-buffer buffer)))))))))
+ buffer))
(define (make-init-message message)
(if message
(set! notifier-thread-registration
(start-standard-polling-thread (* (ref-variable notify-interval #f)
1000)
- notifier))
+ notifier
+ (cons 'notifier current-editor)))
unspecific))
(define (notifier)
(set-buffer-major-mode! buffer (ref-mode-object read-only))
(local-set-variable! truncate-lines #t buffer)
(let ((registration #f)
- (report #f)
- (thread-flags (list (cons (current-thread) "edwin"))))
+ (report #f))
(define (new-report)
(call-with-output-string
(lambda (port)
- (world-report port thread-flags))))
+ (world-report port))))
(define (sleep)
(sleep-current-thread
(if registration
(deregister-inferior-thread! registration))
(set! registration #f)
- (exit-current-thread #t))))))))
-
+ (exit-current-thread #t)))))
+ buffer)))
(buffer-put! buffer 'WORLD-MONITOR monitor)
- (set! thread-flags (cons (cons monitor "monitor") thread-flags))
(update-world-monitor! buffer (new-report))
(set-buffer-point! buffer (buffer-start buffer))
(set! registration
(set! connection-closure-thread-registration
(start-standard-polling-thread
connection-closure-thread-interval
- connection-closure-output-processor))
+ connection-closure-output-processor
+ 'connection-closure-thread))
unspecific)))))
(define (connection-closure-output-processor)
(start-standard-polling-thread
(* 1000 interval)
(probe-folder-output-processor
- (weak-cons folder unspecific)))))))))))
+ (weak-cons folder unspecific))
+ folder)))))))))
(define ((probe-folder-output-processor folder))
(let ((folder (weak-car folder)))