asterisk/tests
David M. Lee b23e8e1950 stasis: Fixed message ordering issues when forwarding
This patch fixes an issue of message ordering that occurs when
multiple topics are forwarded to an aggregator topic (such as
ast_channel_topic_all()).

It is (very reasonably) expected that the rules governing message
dispatch order still apply, so long as the messages start from the
same thread, and are received by the same subscription. Because the
existing code had an additional layer of dispatching via the Stasis
thread pool for forwards, those promises couldn't be kept.

Forwarding subscriptions no longer have their own mailbox, and now
dispatch directly from the forwarding topic's stasis_publish()
call. This means that the topic's lock is held for the duration of not
only a message's dispatch, but the dispatch of all the forwards. This
shouldn't be a problem right now, but if an aggregator topic had many
subscribers, it could become a problem. But I figure we can write more
clever code when the time comes, if necessary.

Review: https://reviewboard.asterisk.org/r/2419/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-04-01 13:37:51 +00:00
..
Makefile Title update 2012-10-14 21:56:13 +00:00
test_abstract_jb.c Unit tests for the Jitter Buffer API; remove unnecessary resync 2012-07-23 21:15:26 +00:00
test_acl.c Silence a warning message from older versions of GCC. 2012-07-24 19:12:09 +00:00
test_ami_security_events.sh Add an API for reporting security events, and a security event logging module. 2009-07-11 19:15:03 +00:00
test_amihooks.c Merged revisions 338556 via svnmerge from 2011-09-29 21:16:07 +00:00
test_aoc.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_app.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_ast_format_str_reduce.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_astobj2.c Merged revisions 376575 via svnmerge from 2012-11-21 19:20:22 +00:00
test_astobj2_thrash.c Merged revisions 376341,376344-376345 via svnmerge from 2012-11-16 00:19:48 +00:00
test_config.c Handle deprecated (aliased) option names with the config options api 2012-07-12 21:43:09 +00:00
test_db.c app_queue: Support persisting and loading of long member lists. 2012-10-01 20:36:25 +00:00
test_devicestate.c Make hints for invalid SIP devices return Unavail, not idle 2012-03-13 20:06:57 +00:00
test_dlinklists.c Merged revisions 338556 via svnmerge from 2011-09-29 21:16:07 +00:00
test_event.c Fix ast_event_new unit test. 2012-07-30 13:45:42 +00:00
test_expr.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_format_api.c Audit of ao2_iterator_init() usage for v10. 2012-01-27 19:33:49 +00:00
test_func_file.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_gosub.c Doxygen Updates Janitor Work 2012-09-22 20:43:30 +00:00
test_hashtab_thrash.c Merged revisions 376341,376344-376345 via svnmerge from 2012-11-16 00:19:48 +00:00
test_heap.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_jitterbuf.c Add tests for main/jitterbuf.c 2012-03-14 18:56:15 +00:00
test_json.c Move more channel events to Stasis; move res_json.c to main/json.c. 2013-03-22 14:06:46 +00:00
test_linkedlists.c Clean up and ensure proper usage of alloca() 2012-07-31 20:21:43 +00:00
test_locale.c Merged revisions 338556 via svnmerge from 2011-09-29 21:16:07 +00:00
test_logger.c Merged revisions 338556 via svnmerge from 2011-09-29 21:16:07 +00:00
test_netsock2.c Add a unit test for ast_sockaddr_split_hostport 2011-11-09 19:31:27 +00:00
test_pbx.c Merged revisions 337062 via svnmerge from 2011-09-20 21:05:42 +00:00
test_poll.c Add leading and trailing backslashes 2012-04-19 21:14:35 +00:00
test_sched.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_scoped_lock.c I forgot to add the unit tests for scoped locks earlier today. 2012-08-23 04:12:32 +00:00
test_security_events.c Update security events unit tests 2012-05-03 19:36:33 +00:00
test_skel.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_sorcery.c Pass the sorcery instance to wizards for CUD operations as well as retrieve. 2013-03-20 14:52:23 +00:00
test_stasis.c stasis: Fixed message ordering issues when forwarding 2013-04-01 13:37:51 +00:00
test_stringfields.c Add aggregate operations for stuctures with string fields 2013-02-07 15:16:44 +00:00
test_strings.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_substitution.c Opaquify ast_channel structs and lists 2012-02-29 16:52:47 +00:00
test_taskprocessor.c Add a serializer interface to the threadpool 2013-02-12 21:45:59 +00:00
test_threadpool.c Add a serializer interface to the threadpool 2013-02-12 21:45:59 +00:00
test_time.c Merged revisions 332177 via svnmerge from 2011-08-16 20:15:23 +00:00
test_utils.c Fix some tests that didn't get opaquification changes 2012-02-23 01:53:17 +00:00
test_uuid.c Add uuid wrapper API call ast_uuid_generate_str(). 2013-03-28 23:59:20 +00:00
test_voicemail_api.c Multiple revisions 368963,368965 2012-06-14 19:40:11 +00:00
test_xml_escape.c Merged revisions 378935 via svnmerge from 2013-01-12 07:21:01 +00:00