1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2025-03-02 09:57:48 +01:00

- prevented a condition variable to be awaken even if condition is not actually met.

This commit is contained in:
cage 2022-02-11 14:12:02 +01:00
parent 18110dbd42
commit 1234936175
2 changed files with 7 additions and 2 deletions

View File

@ -258,7 +258,7 @@
(with-accessors ((lock lock)
(condition-variable condition-variable)) object
(setf (command-window:echo-character specials:*command-window*)
nil)
:completed)
(with-lock (lock)
(bt:condition-notify condition-variable))))

View File

@ -229,7 +229,12 @@
(condition-variable condition-variable)) event
(push-event event)
(with-lock (lock)
(bt:condition-wait condition-variable lock)
(loop
while (not (eq (command-window:echo-character *command-window*)
:completed))
do
(bt:condition-wait condition-variable lock))
(setf (command-window:echo-character *command-window*) nil)
(funcall on-input-complete-fn (box:dunbox (payload event))))))))
(bt:make-thread #'thread-fn)))