A mux is busy when any stream id >= 0 is currently being handled
and the current stream's id doesn't match. When no stream is
involved (ie: demuxer), stream 0 is considered. This will be
necessary to know when it's possible to send frames.
return h2s ? h2s->id : 0;
}
+/* returns true of the mux is currently busy as seen from stream <h2s> */
+static inline int h2c_mux_busy(const struct h2c *h2c, const struct h2s *h2s)
+{
+ if (h2c->msi < 0)
+ return 0;
+
+ if (h2c->msi == h2s_id(h2s))
+ return 0;
+
+ return 1;
+}
+
/*********************************************************/
/* functions below are I/O callbacks from the connection */