-
Notifications
You must be signed in to change notification settings - Fork 46
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
Busy synchronization #489
Comments
I'm really not sure what's going on here. Unfortunately, I've got to focus my time and energy on other projects, and I won't be spending any time on my emacs stuff. |
Again hitting the same scenario and want to share more observations. First of all, the code of that function: (defun ycmd-deferred:sync! (d)
"Wait for the given deferred task.
Error is raised if it is not processed within deferred chain D.
This is a slightly modified version of the original
`deferred:sync!' function, with using `accept-process-output'
wrapped with `with-current-buffer' for waiting instead of a
combination of `sit-for' and `sleep-for' and with a shorter wait
time."
(progn
(let ((last-value 'deferred:undefined*)
uncaught-error)
(deferred:try
(deferred:nextc d
(lambda (x) (setq last-value x)))
:catch
(lambda (err) (setq uncaught-error err)))
(with-local-quit
(while (and (eq 'deferred:undefined* last-value)
(not uncaught-error))
(accept-process-output nil 0.01))
(when uncaught-error
(deferred:resignal uncaught-error))
last-value)))) So if I switch any buffer where YCMD is not active, there is no problem. As soon as I choose a buffer where YCMD is active, Emacs freezes. Now as I understand, thanks to
message. If I freeze again and again C-g, then another same message is printed and so on. From the documentation string I see that |
I know what's going on now. Basically, the way With such plethora of possibilities for
For now these were just examples of the potential complexity, I'm not yet claiming that So because of the absence of the above measures, the following happens:
|
@ptrv, do you still maintain |
I don't know how but sometimes the above happens, and the only thing I see is
Garbage collecting...done
, while input it locked. The only way to escape that is to<C-g>
three times. However, moving the point a couple of times again triggers the same scenario. I triedycmd-open
to restart it but it ends up with the same problem. Onlyycmd-close
stops it of course. Not sure if this is environment-related or a regression. I haven't seen this a couple of months ago for sure.The text was updated successfully, but these errors were encountered: