Files
asterisk/include/asterisk
Richard Mudgett ada7346792 res_pjsip: Need to use the same serializer for a pjproject SIP transaction.
All send/receive processing for a SIP transaction needs to be done under
the same threadpool serializer to prevent reentrancy problems inside
pjproject and res_pjsip.

* Add threadpool API call to get the current serializer associated with
the worker thread.

* Pick a serializer from a pool of default serializers if the caller of
res_pjsip.c:ast_sip_push_task() does not provide one.

This is a simple way to ensure that all outgoing SIP request messages are
processed under a serializer.  Otherwise, any place where a pushed task is
done that would result in an outgoing out-of-dialog request would need to
be modified to supply a serializer.  Serializers from the default
serializer pool are picked in a round robin sequence for simplicity.

A side effect is that the default serializer pool will limit the growth of
the thread pool from random tasks.  This is not necessarily a bad thing.

* Made pjsip_distributor.c save the thread's serializer name on the
outgoing request tdata struct so the response can be processed under the
same serializer.

This is a cherry-pick from master.

**** ASTERISK-25115 Change-Id: Iea71c16ce1132017b5791635e198b8c27973f40a

NOTE: session_inv_on_state_changed() is disassociating the dialog from the
session when the invite dialog becomes PJSIP_INV_STATE_DISCONNECTED.
Unfortunately this is a tad too soon because our BYE request transaction
has not completed yet.

ASTERISK-25183 #close
Reported by: Matt Jordan

Change-Id: I8bad0ae1daf18d75b8c9e55874244b7962df2d0a
2015-07-06 12:52:36 -05:00
..
2015-04-12 13:48:10 -05:00
2012-06-25 15:55:25 +00:00
2014-01-12 22:24:27 +00:00
2014-07-24 17:50:46 +00:00
2013-07-25 04:06:32 +00:00
2013-08-22 18:52:41 +00:00
2012-08-30 14:23:28 +00:00
2012-08-30 14:23:28 +00:00
2013-08-30 20:58:59 +00:00
2014-07-04 13:26:37 +00:00
2013-07-03 17:58:45 +00:00
2015-06-08 11:09:22 -04:00
2014-01-06 17:45:25 +00:00
2012-09-21 17:14:59 +00:00
2015-01-26 14:49:32 +00:00
2014-07-21 08:41:29 +00:00
2013-04-22 16:22:00 +00:00
2013-05-08 13:39:08 +00:00
2015-06-03 14:03:18 -05:00
2013-02-14 18:47:56 +00:00
2013-02-15 13:38:12 +00:00