]> git.meshlink.io Git - meshlink/commit
Wake up the MeshLink thread if framed channel data is pending to be flushed. feature/channel-message-framing
authorGuus Sliepen <guus@meshlink.io>
Thu, 28 May 2020 19:02:32 +0000 (21:02 +0200)
committerGuus Sliepen <guus@meshlink.io>
Thu, 28 May 2020 19:02:32 +0000 (21:02 +0200)
commit1597db834faf7a608e52de322bdb423a42f6fbf4
treee813a5fe9a3f3c1dc884b476aa275b0ad3b0f0ed
parent933047eadd101bddb3646ad7acbc0e48170049a0
Wake up the MeshLink thread if framed channel data is pending to be flushed.

When sending data on framed UDP channels, if there is a partial frame in
the send buffer waiting to be flushed after the flush timer expires, this
data was added by the application thread. The MeshLink thread does not know
that a timer was updated, and might use an old timeout value and not
respond in time. So if we detect that this might happen, we signal the
MeshLink thread so it can calculate a new timeout and call select() again.
src/meshlink.c
src/utcp.c
src/utcp.h
src/utcp_priv.h