mirror of https://github.com/sipwise/rtpengine.git
Packet processing (decoding, encoding, file writing, etc) happens with the main parent object (metafile) unlocked and only with the specific child object (SSRC) locked. During teardown we close all SSRC objects with the metafile locked, without locking the SSRC objects. This opens up a race condition during which SSRC closing can happen at the same time as packet processing. Fix this by locking each SSRC object during teardown, and also clear out the SSRC hash table while the metafile is locked, which serves as a marker to a packet processing thread that processing should be skipped. Closes #1663 Change-Id: I4e8a6a5abfd678a6cfd794a98470a49d60694207pull/1675/head
parent
a0fed37812
commit
237a3a6402
Loading…
Reference in new issue