Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Race condition with :read-mode #1

Open
s-clerc opened this issue Apr 18, 2020 · 1 comment
Open

Race condition with :read-mode #1

s-clerc opened this issue Apr 18, 2020 · 1 comment

Comments

@s-clerc
Copy link
Owner

s-clerc commented Apr 18, 2020

It seems like for some reason, there is a desynchronisation between setting the read-mode and receiving input, and eventually Slynk decides it just wants to show a prompt and then we have a problem but I'm not exactly clear why.

How to reproduce:

  1. Start any function which continually demands (read-line) and keeps demanding it on no-input
  2. Press and hold enter until the error appears.

Log files:

Earlier up

b'(:channel-send 1 (:set-read-mode :read))'


b'000026(:EMACS-CHANNEL-SEND 1 (:PROCESS "\n"))'
b'(:channel-send 1 (:set-read-mode :finished-reading))'

Just before the error:

b'000026(:EMACS-CHANNEL-SEND 1 (:PROCESS "\n"))'
b'(:channel-send 1 (:set-read-mode :read))'
b'(:channel-send 1 (:set-read-mode :finished-reading))'


b'000025(:EMACS-CHANNEL-SEND 1 (:PROCESS ""))'
write: [...]
b'(:channel-send 1 (:set-read-mode :read))'
b'(:channel-send 1 (:set-read-mode :finished-reading))'
b'(:channel-send 1 (:prompt "COMMON-LISP-USER" "CL-USER" 1 "#<END-OF-FILE #x30200190788D>"))'


b'000025(:EMACS-CHANNEL-SEND 1 (:PROCESS ""))'
s-clerc added a commit that referenced this issue Apr 18, 2020
See #1 for a race condition concerning this implementation.
@s-clerc
Copy link
Owner Author

s-clerc commented Apr 19, 2020

One theory is that after process command is sent, no other things must be sent to be processed until finished-read is sent.

s-clerc added a commit that referenced this issue Mar 30, 2021
See #1 for a race condition concerning this implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant