Commit Graph

13 Commits

Author SHA1 Message Date
David Vossel
8e2f88caf5 Merged revisions 199743 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r199743 | dvossel | 2009-06-09 11:22:04 -0500 (Tue, 09 Jun 2009) | 11 lines
  
  module load priority
  
  This patch adds the option to give a module a load priority. The value represents the order in which a module's load() function is initialized.  The lower the value, the higher the priority.  The value is only checked if the AST_MODFLAG_LOAD_ORDER flag is set.  If the AST_MODFLAG_LOAD_ORDER flag is not set, the value will never be read and the module will be given the lowest possible priority
  on load.  Since some modules are reliant on a timing interface, the timing modules have been given a high load priorty.
  
  (closes issue #15191)
  Reported by: alecdavis
  Tested by: dvossel
  
  Review: https://reviewboard.asterisk.org/r/262/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@199745 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-09 16:33:31 +00:00
Russell Bryant
08678cf81a Merged revisions 198183 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r198183 | russell | 2009-05-29 17:33:31 -0500 (Fri, 29 May 2009) | 2 lines
  
  Improve handling of trying to ACK too many timer expirations.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@198184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-29 22:34:12 +00:00
Russell Bryant
c99a0cf74a Merged revisions 198146 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r198146 | russell | 2009-05-29 15:06:59 -0500 (Fri, 29 May 2009) | 38 lines
  
  Resolve issues with choppy sound when using res_timing_pthread.
  
  The situation that caused this problem was when continuous mode was being
  turned on and off while a rate was set for a timing interface.  A very easy
  way to replicate this bug was to do a Playback() from behind a Local channel.
  In this scenario, a rate gets set on the channel for doing file playback.
  At the same time, continuous mode gets turned on and off about every 20 ms
  as frames get queued on to the PBX side channel from the other side of the
  Local channel.
  
  Essentially, this module treated continuous mode and a set rate as mutually
  exclusive states for the timer to be in.  When I dug deep enough, I observed
  the following pattern:
  
     1) Set timer to tick every 20 ms.
     2) Wait almost 20 ms ...
     3) Continuous mode gets turned on for a queued up frame
     4) Continuous mode gets turned off
     5) The timer goes back to its tick per 20 ms. state but starts counting
        at 0 ms.
     6) Goto step 2.
  
  Sometimes, res_timing_pthread would make it 20 ms and produce a timer tick,
  but not most of the time.  This is what produced the choppy sound (or sometimes
  no sound at all).
  
  Now, the module treats continuous mode and a set rate as completely independent
  timer modes.  They can be enabled and disabled independently of each other and
  things work as expected.
  
  
  (closes issue #14412)
  Reported by: dome
  Patches:
        issue14412.diff.txt uploaded by russell (license 2)
        issue14412-1.6.1.0.diff.txt uploaded by russell (license 2)
  Tested by: DennisD, russell
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@198147 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-29 20:11:00 +00:00
Russell Bryant
d37e398787 Merged revisions 197960 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r197960 | russell | 2009-05-29 11:15:30 -0500 (Fri, 29 May 2009) | 2 lines
  
  Trim trailing whitespace so that I can work on this bug without it bothering me.  :-)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@197969 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-29 16:19:55 +00:00
Russell Bryant
18b14510f2 Merged revisions 176666 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r176666 | russell | 2009-02-17 15:22:40 -0600 (Tue, 17 Feb 2009) | 16 lines

Update the timing API to have better support for multiple timing interfaces.

1) Add module use count handling so that timing modules can be unloaded.

2) Implement unload_module() functions for the timing interface modules.

3) Allow multiple timing modules to be loaded, and use the one with the
   highest priority value.

4) Report which timing module is being use in the "timing test" CLI command.

(closes issue #14489)
Reported by: russell

Review: http://reviewboard.digium.com/r/162/

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@176675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 21:24:17 +00:00
Russell Bryant
74fada439f Merged revisions 163241 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r163241 | russell | 2008-12-11 15:21:31 -0600 (Thu, 11 Dec 2008) | 8 lines

Fix a problem where continuous mode will get inadvertently get turned off if set_rate()
is used while continuous mode was already turned on.

(closes issue #13738)
Reported by: smurfix
Patches:
      res.patch.fixed uploaded by smurfix (license 547)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163252 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 21:24:37 +00:00
Mark Michelson
6ed6a5ae29 Merged revisions 140489 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r140489 | mmichelson | 2008-08-29 12:47:17 -0500 (Fri, 29 Aug 2008) | 30 lines

Merged revisions 140488 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r140488 | mmichelson | 2008-08-29 12:34:17 -0500 (Fri, 29 Aug 2008) | 22 lines

After working on the ao2_containers branch, I noticed
something a bit strange. In all cases where we provide
a callback function to ao2_container_alloc, the callback
function would only return 0 or CMP_MATCH. After inspecting
the ao2_callback() code carefully, I found that if you're
only looking for one specific item, then you should return
CMP_MATCH | CMP_STOP. Otherwise, astobj2 will continue
traversing the current bucket until the end searching for
more matches.

In cases like chan_iax2 where in 1.4, all the peers are
shoved into a single bucket, this makes for potentially
terrible performance since the entire bucket will be
traversed even if the peer is one of the first ones come
across in the bucket.

All the changes I have made were for cases where the 
callback function defined was passed to ao2_container_alloc
so that calls to ao2_find could find a unique instance
of whatever object was being stored in the container.


........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@140490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-29 17:48:07 +00:00
Sean Bright
357bf3e90b All of the res/ stuff (other than res_jabber) from the RSW branch.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 00:47:56 +00:00
Russell Bryant
02b1317d0f - add get_max_rate timing API call
- change ast_settimeout() to honor max rate in edge cases of file playback
  (this will make some warning messages go away at the end of playing back
   a file)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-26 15:37:01 +00:00
Russell Bryant
ed289fd3aa fix a memory leak.
(inspired by, and potentially fixes issue #12917)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@124798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-24 02:16:59 +00:00
Russell Bryant
fa4bce7c43 - Make res_timing_pthread allow a max rate of 100/sec instead of 50/sec
- change the "timing test" CLI command to let you specify a timing rate to test


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@124023 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-19 18:30:49 +00:00
Russell Bryant
5aeb6a6cbb Fix the check against the max supported rate
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 19:00:14 +00:00
Russell Bryant
9a301b9f20 Merge res_timing_pthread. This is a timing interface for Asterisk that
does not require DAHDI.  It's called "pthread" because it uses a pthread
API call in the timing thread for sleeping and ensuring we wake up at
an appropriate time.  I wasn't sure what else to call it.  :)

The timing API requires a file descriptor that can be polled on.  So,
when you open a timer, this module creates a pipe and returns the read
end of the pipe.  There is a background thread that wakes up every 10ms
and checks to see if any of the currently open timers need a 'tick' and
writes to the appropriate pipe.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122928 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 13:08:13 +00:00