Commit 178221e8 authored by David Byers's avatar David Byers
Browse files

Fixed questionable logic in lyskom-wait-queue that may have been the cause

of occasional hanging.
parent 954ca1f0
2002-08-09 David Byers <david.byers@swipnet.se>
Better font handling:
* utilities.el (lyskom-set-face-scheme): Set faces for overlays
only if they haven't been set by the user. Don't require expected
background in face schemes.
Attempt to fix irreprudicble hangs:
* services.el (lyskom-wait-queue): Rewrote without using
blocking-return. Use collector instead. The use of blocking-return
and dynamic binding was questionable and probably wrong.
2002-08-08 Per Cederqvist <ceder@ceder.dyndns.org>
The "sparar" marker could be left indefinitely in the mode line.
......
......@@ -1328,10 +1328,10 @@ or get-text-stat."
(save-excursion
(set-buffer (or lyskom-buffer
(process-buffer lyskom-proc)))
(let ((lyskom-blocking-return 'not-yet-gotten))
(lyskom-run queue 'blocking-return (list t))
(let ((collector (make-collector)))
(lyskom-run queue (lambda (c) (set-collector->value c t)) collector)
(unwind-protect
(while (and (eq lyskom-blocking-return 'not-yet-gotten)
(while (and (null (collector->value collector))
(not lyskom-quit-flag))
(lyskom-accept-process-output))
(setq lyskom-ok-to-send-new-calls t)
......@@ -1341,7 +1341,7 @@ or get-text-stat."
(lyskom-insert-before-prompt (lyskom-get-string 'interrupted))
(signal 'quit nil)))
(setq lyskom-quit-flag nil)
lyskom-blocking-return)))
(collector->value collector))))
(defvar lyskom-multiple-blocking-return nil
......
......@@ -1079,24 +1079,33 @@ in lyskom-face-schemes."
;; the face scheme expects. If not, copy the computed highlight
;; faces to the real highlight faces.
(when (or (not (facep 'kom-dashed-lines-face))
(not (facep 'kom-async-dashed-lines-face))
(not (facep 'kom-text-body-face))
(not (facep 'kom-async-text-body-face))
(not (and background
(assq 'expected-background properties)
(let ((expected-background
(or (null background)
(null (assq 'expected-background properties))
(equal (lyskom-color-values
(cdr (assq 'expected-background properties)))
(lyskom-color-values background)))))
(unless (and (memq 'kom-dashed-lines-face set-faces)
expected-background)
(copy-face 'lyskom-strong-highlight-face 'kom-dashed-lines-face))
(unless (and (memq 'kom-text-body-face set-faces)
expected-background)
(copy-face 'lyskom-weak-highlight-face 'kom-text-body-face))
(unless (and (memq 'kom-async-dashed-lines-face set-faces)
expected-background)
(copy-face 'lyskom-strong-highlight-face 'kom-async-dashed-lines-face))
(unless (and (memq 'kom-async-text-body-face set-faces)
expected-background)
(copy-face 'lyskom-weak-highlight-face 'kom-async-text-body-face))
(setq set-faces (append set-faces
(list 'kom-dashed-lines-face
'kom-text-body-face
'kom-async-dashed-lines-face
'kom-async-text-body-face)))
(copy-face 'lyskom-strong-highlight-face 'kom-dashed-lines-face)
(copy-face 'lyskom-weak-highlight-face 'kom-text-body-face)
(copy-face 'lyskom-strong-highlight-face 'kom-async-dashed-lines-face)
(copy-face 'lyskom-weak-highlight-face 'kom-async-text-body-face))
'kom-async-text-body-face))))
;; Check that we've set all faces. If not, copy the default face and post a message
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment