Closed juha-matikainen closed 4 years ago
Hi Juha,
Thanks for this great bug report. I'll fix it ASAP.
Should be fixed now. Please verify.
Thanks for the quick fix! Reviewed and tested successfully with processEvent(). I would expect waitReady() to also work as d()->m_readyMsg handling is same.
Hi, There is a bug in Source::processEvent() which causes DsState to automatically change back to XferReady after first image is handled. I believe same affects also Source::waitReady(). Tested while DSM is loaded with preferOld=true.
In Windows implementation d()->m_readyMsg is set to new value only when it is not Msg::Null
But it is not set back to Msg::Null in case of XferReady (or CloseDSOk) when handled later
So as a result next DsEvent or NotDsEvent after XferReady is again handled as XferReady causing DsState mismatch between application and source.
This can be fixed by setting d()->m_readyMsg to Msg::Null after being handled.