patrick
patrick
Notice the computation of the `que` goes like this here: `takeMVar queVar`. `queVar` might never be filled with the `que` value. If the thread that would fill the `queVar` exit...
@michaelpj I see it is talked about it in the biweekly meeting, is there something new you guys have came up with?
Yes, it passes the test and solves the problem. Simply put, it hangs because we are trying to `takeMvar` of the `queVar`(It should contain the `write chan` of the db),...
> What happens if we just do the second bit? I would still prefer to avoid complicating the config update callback if we can If only the second bit is...
~~Great, it seems to be working with lsp updated with correct shutdown behaviour. @michaelpj Could you do a release of LSP package from the head, then I can update the...
``` --> { "jsonrpc": "2.0", "method": "initialized", "params": {} } --> { "id": 0, "jsonrpc": "2.0", "method": "shutdown" } 2024-04-08T14:20:03.274166Z | Info | LSP: received shutdown 2024-04-08T14:20:03.274196Z | Debug |...
So this is what happens: 1 server sendRequest `SMethod_WorkspaceConfiguration` to client (callback is not ran yet). 2 client send shutdown to server, server shutdown. 3 response to `SMethod_WorkspaceConfiguration` is recieved...
I am also considering adding a current thread ID to the hls log. It should help us with a more effective debugging eperience on such race issues.
Something like this ``` ThreadId 19 | 2024-04-11T03:17:33.383209Z | Info | Started LSP server in 0.01s ThreadId 19 | 2024-04-11T03:17:33.452743Z | Debug | ghc --print-libdir ThreadId 19 | 2024-04-11T03:17:33.453779Z |...
Fixed at lsp https://github.com/haskell/lsp/pull/567 and upgraded lsp in #4166