patch 7.4.1451
Problem:    Vim hangs when a channel has a callback but isn't referenced.
Solution:   Have channel_unref() only return TRUE when the channel was
            actually freed.
diff --git a/src/eval.c b/src/eval.c
index 4dd400a..a208b2a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7747,10 +7747,7 @@
 channel_unref(channel_T *channel)
 {
     if (channel != NULL && --channel->ch_refcount <= 0)
-    {
-	channel_may_free(channel);
-	return TRUE;
-    }
+	return channel_may_free(channel);
     return FALSE;
 }
 #endif