Reduce channel snapshot creation and publishing by up to 50%.

This change introduces the ability to stage channel snapshot
creation and publishing by suppressing the implicit creation
and publishing that some functions have. Once all operations
are executed the staging is marked as done and a single snapshot
is created and published.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@400265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2013-10-02 16:20:25 +00:00
parent 1e22b90efe
commit 1dd63fbdfa
22 changed files with 151 additions and 3 deletions

View File

@@ -621,6 +621,8 @@ static void ss7_start_call(struct sig_ss7_chan *p, struct sig_ss7_linkset *links
sig_ss7_set_echocanceller(p, 1);
ast_channel_stage_snapshot(c);
/*
* It is reasonably safe to set the following
* channel variables while the channel private
@@ -700,6 +702,8 @@ static void ss7_start_call(struct sig_ss7_chan *p, struct sig_ss7_linkset *links
p->generic_name[0] = 0;
}
ast_channel_stage_snapshot_done(c);
sig_ss7_unlock_private(p);
ast_channel_unlock(c);