agent: Fix a potential re-entrancy situation
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Tue, 4 Mar 2014 13:48:03 +0000 (13:48 +0000)
committerOlivier Crête <olivier.crete@collabora.com>
Tue, 4 Mar 2014 20:47:25 +0000 (15:47 -0500)
commite62d47d6b4e955f21c15c95cb78fdd823853dd80
tree5f25028fd856ca0b4724ca9f8420ad3dbf03a25b
parentd3a640c20cbf5d1f7385bec15739c2ea880326ad
agent: Fix a potential re-entrancy situation

If we emit signals from component_io_cb() in the middle of a read, it’s
possible that one of those signals will be picked up by the client to
perform another read. A likely candidate (and what was triggering the
re-entrancy here) would be component-state-changed. Since signals are
emitted synchronously, the second read would being inside the first, and
trigger the anti-re-entrancy assertion.
agent/agent.c