Fix vim8 hang when ch_status() == 'buffered' but ch_read returns nothing
Fix vim8 hang when ch_status() == 'buffered' but ch_read returns nothing

It seems that sometimes, the ch_status is buffered, but ch_read is
returning nothing. It causes the vim_oneshot_handler to get stuck in an
infinite loop.

Since this is happening in the main thread, vim appears to lockup until
you hit <C-c> or something to interrupt eval of this code.

Specifically, I've seen this when using the clang autocompletion on
C-like languages. If I was typing particularly fast, I would see this
issue occur. It was getting annoying.

I ran vim in GDB to try and figure out what was going
on, saw that it was evaling this code inside this function. I then added
logging to this function and confirmed that lockups in vim corresponded
to being stuck in an infinite loop inside this function.

Based on my understanding, it is safe to exit the loop early, you might
just not get all your completions...

maralla/completor.vim,maralla/completor.vim