On 06/11/2017 at 06:51 PM Joshua Colp wrote: > On Sun, Jun 11, 2017, at 01:47 PM, Joshua Colp wrote: >> The distributor is in res/res_pjsip/pjsip_distributor.c, the distributor >> function being the entry point. That function returning PJ_TRUE >> indicates to PJSIP that it has been handled and no subsequent modules >> should be called by that running thread. The distributor itself, though, >> ends up executing things further in a worker thread using the distribute >> function. > > To be more detailed - PJSIP maintains no queue, a message comes in from > a transport and is given to modules until one says it has handled the > message. We place our distributor close to the transport and it puts the > message into a queue for handling in Asterisk ensuring serialization as > appropriate, returning that it has handled the message so no other > modules handle it at that time. Once the message is handled from the > queue it picks back up invoking modules at the point where the original > thread left off. This ensures messages are handled as quickly as > possible without blocking the transport but also provides guarantees on > ordering and simultaneous execution. (Two messages for the same call > will be handled in order, one at a time). >
I added this patch to see, if really all packages are are freed after they have been processed: --- b/res/res_pjsip/pjsip_distributor.c 2017-05-30 19:44:16.000000000 +0200 +++ a/res/res_pjsip/pjsip_distributor.c 2017-06-13 20:25:27.233000000 +0200 @@ -407,6 +407,7 @@ /* We have a BYE or CANCEL request without a serializer. */ pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata, PJSIP_SC_CALL_TSX_DOES_NOT_EXIST, NULL, NULL, NULL); + ast_debug(3, "PJ_TRUE 1\n"); return PJ_TRUE; } else { if (ast_taskprocessor_alert_get()) { @@ -439,8 +440,8 @@ pjsip_rx_data_free_cloned(clone); } + ast_debug(3, "PJ_TRUE 3 - ready\n"); ast_taskprocessor_unreference(serializer); - return PJ_TRUE; } Unfortunately, this patch crashes asterisk when debug is enabled. Is there another way to check, if all the packages are really freed? Thanks, Michael -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- Check out the new Asterisk community forum at: https://community.asterisk.org/ New to Asterisk? Start here: https://wiki.asterisk.org/wiki/display/AST/Getting+Started asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users