xelb
xelb copied to clipboard
`xcb:-connection-setup-filter` drops data
I'm pretty sure it's supposed to put any unread messages back in the message cache, but it doesn't.
I had just a brief look.
If we assume that the filter can be invoked while running (why else would we 'lock
?), then we should:
(setf (slot-value connection 'message-cache) (substring (slot-value connection 'message-cache) data-len))
at the end, instead of setting possibly outdated cache
. This should happen just before releasing the 'lock
. (Or will the process sentinel (and therefore xcb:disconnect
) run immediately after the error
s?).
The ;; Connection established
case should not clear the 'message-cache
.
I think that's the correct answer?