You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a significant and positive architectural shift from dedicated threads per muxer to a shared Vertx WorkerExecutor pool. This should greatly improve scalability under high load. The move to executeBlocking with a periodic timer is appropriate for this use case. My primary concerns are around native memory management (ensuring all AVPackets in the queue are freed in all circumstances) and the potential CPU overhead of the 10ms periodic timer if the system scales to a large number of concurrent muxers. Please ensure the test suite is robust enough to cover the async nature of the new draining mechanism.
📄 Inline File Comments:
src/main/java/io/antmedia/muxer/EndpointMuxer.java: The vertx.setPeriodic(10, ...) timer runs every 10ms. This is quite aggressive and could lead to high CPU overhead if many muxers are active. Could this interval be adjusted or made configurable? Also, check if this timer is properly cancelled during all shutdown paths to prevent leaks.
src/main/java/io/antmedia/muxer/EndpointMuxer.java: LinkedBlockingQueue<AVPacket>: Ensure all paths (especially error cases and teardown) correctly free these AVPacket instances to prevent native memory leaks. The current freeQueuedPackets() helper is a good start, but verify it covers all edge cases.
src/test/java/io/antmedia/test/MuxerUnitTest.java: The test testTeardownDrainsQueuedPackets (renamed from testShutdownWorkerQueueFullDrainsPacket) likely needs to be carefully verified to ensure it properly mocks/handles the new Vertx-based worker pool lifecycle. Ensure that the test waits long enough for the async drain() task to complete before asserting the queue state.
master312
changed the title
Endpoint muxer threading refactor.
Fix endpoint muxer TODOs and make threading use vert.x.
Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#7882