Commit Graph

167 Commits

Author SHA1 Message Date
Russell Bryant
51051ce949 Add lock tracking for rwlocks. Previously, lock.h only had the ability to
hold tracking information for mutexes.  Now, the "core show locks" output
will output information about who is holding a rwlock when a thread is
waiting on it.

(closes issue #11279)
Reported by: ys
Patches:
      trunk_lock_utils.v8.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120064 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-03 18:26:51 +00:00
Tilghman Lesher
5a50f0e441 Merged revisions 118954 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r118954 | tilghman | 2008-05-29 12:33:01 -0500 (Thu, 29 May 2008) | 2 lines

Define also when not DEBUG_THREADS

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-29 17:39:50 +00:00
Tilghman Lesher
6e5d843a71 Merged revisions 118953 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r118953 | tilghman | 2008-05-29 12:20:16 -0500 (Thu, 29 May 2008) | 3 lines

Add some debugging code that ensures that when we do deadlock avoidance, we
don't lose the information about how a lock was originally acquired.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118955 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-29 17:35:19 +00:00
Mark Michelson
0b06cc0231 Make sure not to include non-existent headers if they indeed are non-existent
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-23 22:41:28 +00:00
Mark Michelson
975a848b67 A new feature thanks to the fine folks at Switchvox!
If a deadlock is detected, then the typical lock information will be
printed along with a backtrace of the stack for the offending threads.
Use of this requires compiling with DETECT_DEADLOCKS and having glibc
installed.

Furthermore, issuing the "core show locks" CLI command will print the
normal lock information as well as a backtraces for each lock. This
requires that DEBUG_THREADS is enabled and that glibc is installed.

All the backtrace features may be disabled by running the configure
script with --without-execinfo as an argument



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-23 22:35:50 +00:00
Mark Michelson
b6aef57619 Merged revisions 116088 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r116088 | mmichelson | 2008-05-13 18:47:49 -0500 (Tue, 13 May 2008) | 12 lines

A change to the way channel locks are handled when DEBUG_CHANNEL_LOCKS is defined.

After debugging a deadlock, it was noticed that when DEBUG_CHANNEL_LOCKS
is enabled in menuselect, the actual origin of channel locks is obscured
by the fact that all channel locks appear to happen in the function
ast_channel_lock(). This code change redefines ast_channel_lock to be a
macro which maps to __ast_channel_lock(), which then relays the proper
file name, line number, and function name information to the core lock
functions so that this information will be displayed in the case that
there is some sort of locking error or core show locks is issued.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@116089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-13 23:54:01 +00:00
Steve Murphy
752f6681b1 A small enhancement-- I added the routine log_show_lock to utils.c, which if the mentioned lock has been acquired, this routine will log to the console the normal info about that lock you'd see from the CLI when you do a 'core show locks'. It's solely for debug-- if the lock is NOT acquired, there is no output. I use it to show 'unexpected' locks, to see where/why a lock is pre-locked. This command is to be called from points of interest, like just before a trylock, and helps to spot fleeting, highly temporal locks that normally are not locked...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-16 20:54:41 +00:00
Mark Michelson
115d5024a1 Merged revisions 114051 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114051 | mmichelson | 2008-04-10 15:59:49 -0500 (Thu, 10 Apr 2008) | 3 lines

Fix 1.4 build when LOW_MEMORY is enabled.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-10 22:02:32 +00:00
Russell Bryant
7da06e6cb8 Merged revisions 105116 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r105116 | russell | 2008-02-28 16:23:05 -0600 (Thu, 28 Feb 2008) | 8 lines

Fix a bug in the lock tracking code that was discovered by mmichelson.  The issue
is that if the lock history array was full, then the functions to mark a lock as
acquired or not would adjust the stats for whatever lock is at the end of the array,
which may not be itself.  So, do a sanity check to make sure that we're updating
lock info for the proper lock.

(This explains the bizarre stats on lock #63 in BE-396, thanks Mark!)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-28 22:39:26 +00:00
Mark Michelson
c8759aff25 Merged revisions 92875 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r92875 | mmichelson | 2007-12-13 19:24:06 -0600 (Thu, 13 Dec 2007) | 7 lines

When compiling with DETECT_DEADLOCKS, don't spam the CLI with messages
about possible deadlocks. Instead just print the intended single message every
five seconds.

(closes issue 11537, reported and patched by dimas)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92876 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-14 01:25:36 +00:00
Russell Bryant
90614c7018 Merged revisions 91828 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91828 | russell | 2007-12-07 15:17:24 -0600 (Fri, 07 Dec 2007) | 6 lines

Fix another bug in the DEBUG_THREADS code.  The ast_mutex_init() function had
the mutex attribute object marked as static.  This means that multiple threads
initializing locks at the same time could step on each other and end up with
improperly initialized locks.
(found when tracking down locking issues related to issue #11080)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91829 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 21:17:52 +00:00
Russell Bryant
c6705bd808 Merged revisions 91826 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91826 | russell | 2007-12-07 15:11:08 -0600 (Fri, 07 Dec 2007) | 6 lines

I love fixing lock related errors in the lock debugging code.  That's about as
ironic as it gets in Asterisk programming land.  Anyway, I spotted this bug while
trying to track down why systems are locking up and acting weird in issue #11080.
The mutex attribute object was marked as static in this function when it should
not have been.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91827 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 21:11:44 +00:00
Russell Bryant
5c56fa7fb7 Merged revisions 91070 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91070 | russell | 2007-12-04 18:35:31 -0600 (Tue, 04 Dec 2007) | 11 lines

Fix some crashes in chan_iax2 that were reported as happening on Mac systems.
It turns out that the problem was the Mac version of the ast_atomic_fetchadd_int()
function.  The Mac atomic add function returns the _new_ value, while this function
is supposed to return the old value.  So, the crashes happened on unreferencing
objects.  If the reference count was decreased to 1, ao2_ref() thought that it
had been decreased to zero, and called the destructor.  However, there was still
an outstanding reference around.

(closes issue #11176)
(closes issue #11289)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-05 01:59:32 +00:00
Tilghman Lesher
4807fe0f0d Fix build of trunk
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-29 17:42:21 +00:00
Luigi Rizzo
b693c30a66 move the declaration of struct ast_channel ast_frame and ast_module
to compat.h so it is always available - hopefully this will let
us reduce the number of inclusions of channel.h and frame.h



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 19:36:32 +00:00
Joshua Colp
42b08b4eb8 Use autoconf logic to determine the presence of PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP and PTHREAD_MUTEX_RECURSIVE_NP. Enclose error message from network.h in "
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 23:03:16 +00:00
Luigi Rizzo
f728d220df compatibility fixes for cygwin
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 10:28:55 +00:00
Luigi Rizzo
1f6dcae007 whitespace only change - adjust indentation and add some
comments on the content of these two files.

utils.h (which is included in over 150 files) contains a lot of
unrelated functions which require the inclusion of a large number
of other headers.  At some point we should partition its content
in a better way.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 22:37:17 +00:00
Luigi Rizzo
fdb7f7ba3d Start untangling header inclusion in a way that does not affect
build times - tested, there is no measureable difference before and
after this commit.

In this change:

use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h

Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.

Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better. 

For the time being I have left alone second-level directories
(main/db1-ast, etc.).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 20:04:58 +00:00
Luigi Rizzo
09d9cce1d8 access channel locks through ast_channel_lock/unlock/trylock and not
through ast_mutex primitives.

To detect all occurrences, I have renamed the lock field in struct ast_channel
so it is clear that it shouldn't be used directly.

There are some uses in res/res_features.c (see details of the diff)
that are error prone as they try and lock two channels without
caring about the order (or without explaining why it is safe).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89293 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 16:20:47 +00:00
Russell Bryant
9eff81dad9 This fixes a build error on my mac. It also works on my linux box. Let me
know if it breaks any other platform ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-13 21:01:14 +00:00
Tilghman Lesher
3c9bc8827b Merged revisions 89045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89045 | tilghman | 2007-11-06 13:09:06 -0600 (Tue, 06 Nov 2007) | 2 lines

We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops).

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 19:16:02 +00:00
Russell Bryant
ed6e62a8e5 Merged revisions 88931 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88931 | russell | 2007-11-06 07:50:15 -0600 (Tue, 06 Nov 2007) | 8 lines

Remove some checks to see if locks are initialized from the non-DEBUG_THREADS
versions of the lock routines.  These are incorrect for a number of reasons:
 - It breaks the build on mac.
 - If there is a problem with locks not getting initialized, then the proper
   fix is to find that place and fix the code so that it does get initialized.
 - If additional debug code is needed to help find the problem areas, then this
   type of things should _only_ be put in the DEBUG_THREADS wrappers.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 13:57:16 +00:00
Tilghman Lesher
ce90623010 Merged revisions 88210 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88210 | tilghman | 2007-11-02 08:03:03 -0500 (Fri, 02 Nov 2007) | 5 lines

Fix build on Solaris
Reported by: snuffy
Patch by: ys
Closes issue #11143

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-02 13:10:29 +00:00
Tilghman Lesher
59ca511408 Merged revisions 87739 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r87739 | tilghman | 2007-10-30 18:02:22 -0500 (Tue, 30 Oct 2007) | 5 lines

Fix for uninitialized mutexes on *BSD
Reported by: ys
Fixed by: ys
Closes issue #11116

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-30 23:08:59 +00:00
Russell Bryant
f7782d60d1 Merged revisions 87396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r87396 | russell | 2007-10-29 15:22:07 -0500 (Mon, 29 Oct 2007) | 5 lines

Add some more details to the output of "core show locks".  When a thread
is waiting for a lock, this will now show the details about who currently
has it locked.
(inspired by issue #11100)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 20:24:47 +00:00
Russell Bryant
8bf796ec10 Merged revisions 86836 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86836 | russell | 2007-10-22 16:36:12 -0500 (Mon, 22 Oct 2007) | 9 lines

If lock tracking is not enabled, then we can not attempt to log any mutex
failures.  If so, we could end up in infinite recursion.  The only lock that
is affected by this is a mutex in astmm.c used when MALLOC_DEBUG is enabled.

(closes issue #11044)
Reported by: ys
Patches:
      lock.h.diff uploaded by ys (license 281)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 21:37:58 +00:00
Russell Bryant
3b92c7b262 Merged revisions 86726 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86726 | russell | 2007-10-22 10:43:30 -0500 (Mon, 22 Oct 2007) | 4 lines

Update the static mutex initializer to include the initialization of
the internal mutex used to protect the lock debugging data.
(closes issue #11044, patch suggested by Ivan)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 15:45:04 +00:00
Russell Bryant
dbdbdb7f43 Merged revisions 85997 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85997 | russell | 2007-10-16 17:36:16 -0500 (Tue, 16 Oct 2007) | 1 line

really picky formatting tweak ...
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85998 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-16 22:36:58 +00:00
Russell Bryant
5007769d4e Merged revisions 85994 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85994 | russell | 2007-10-16 17:14:36 -0500 (Tue, 16 Oct 2007) | 16 lines

Some locking errors exposed the fact that the lock debugging code itself was
not thread safe.  How ironic!  Anyway, these changes ensure that the code that
is accessing the lock debugging data is thread-safe.  

Many thanks to Ivan for finding and fixing the core issue here, and also 
thanks to those that tested the patch and provided test results.

(closes issue #10571)
(closes issue #10886)
(closes issue #10875)
(might close some others, as well ...)

Patches: (from issue #10571)
      ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229)
       - a few small changes by me

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85995 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-16 22:21:45 +00:00
Tilghman Lesher
e9221b062e Merged revisions 85158 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85158 | tilghman | 2007-10-09 16:55:06 -0500 (Tue, 09 Oct 2007) | 5 lines

This commit fixes the following issues:
- Deadlock in ast_write (issue #10406)
- Deadlock in ast_read (issue #10406)
- Possible mutex initialization error in lock.h (issue #10571)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85176 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-09 22:21:49 +00:00
Russell Bryant
9334e72e76 Merged revisions 84271 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84271 | russell | 2007-10-01 16:07:06 -0500 (Mon, 01 Oct 2007) | 4 lines

Fulfull a feature request from Qwell on the "core show locks" output.  It will
now note the lock type for each lock that a thread holds.
(mutex, rdlock, or wrlock)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 21:15:57 +00:00
Russell Bryant
1f3f7215d8 Merged revisions 84206 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84206 | russell | 2007-10-01 14:34:12 -0500 (Mon, 01 Oct 2007) | 2 lines

Show rwlocks in the "core show locks" output.  Before, it only showed mutexes.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 19:40:21 +00:00
Tilghman Lesher
c4869b5f1d Merged revisions 82028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82028 | tilghman | 2007-09-08 21:35:18 -0500 (Sat, 08 Sep 2007) | 2 lines

Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) (closes issue #10675)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-09 02:45:06 +00:00
Tilghman Lesher
9169ac8ef4 Merged revisions 81569 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81569 | tilghman | 2007-09-05 12:18:24 -0500 (Wed, 05 Sep 2007) | 2 lines

Solaris x86 compatibility fix

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 21:45:19 +00:00
Steve Murphy
b69734ae09 Stephn Davies reports that this will help make things work on 64-bit machines
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 17:37:36 +00:00
Russell Bryant
fef7773d0b Merged revisions 78995 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r78995 | russell | 2007-08-10 10:20:09 -0500 (Fri, 10 Aug 2007) | 4 lines

The last set of changes that I made to "core show locks" made it not able to
track mutexes unless they were declared using AST_MUTEX_DEFINE_STATIC.  Locks
initialized with ast_mutex_init() were not tracked.  It should work now.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-10 15:29:31 +00:00
Russell Bryant
1a4bd1ec63 Merged revisions 78143 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r78143 | russell | 2007-08-04 23:15:31 -0500 (Sat, 04 Aug 2007) | 2 lines

Fix compilation failure when MALLOC_DEBUG is enabled, but DEBUG_THREADS is not

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-05 04:16:43 +00:00
Russell Bryant
befb383d16 Merged revisions 78095 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r78095 | russell | 2007-08-03 14:39:49 -0500 (Fri, 03 Aug 2007) | 28 lines

Add some improvements to lock debugging.  These changes take effect
with DEBUG_THREADS enabled and provide the following:

 * This will keep track of which locks are held by which thread as well as
   which lock a thread is waiting for in a thread-local data structure.  A
   reference to this structure is available on the stack in the dummy_start()
   function, which is the common entry point for all threads.  This information
   can be easily retrieved using gdb if you switch to the dummy_start() stack
   frame of any thread and print the contents of the lock_info variable.

 * All of the thread-local structures for keeping track of this lock information
   are also stored in a list so that the information can be dumped to the CLI
   using the "core show locks" CLI command.  This introduces a little bit of a
   performance hit as it requires additional underlying locking operations
   inside of every lock/unlock on an ast_mutex.  However, the benefits of
   having this information available at the CLI is huge, especially considering
   this is only done in DEBUG_THREADS mode.  It means that in most cases where
   we debug deadlocks, we no longer have to request access to the machine to
   analyze the contents of ast_mutex_t structures.  We can now just ask them
   to get the output of "core show locks", which gives us all of the information
   we needed in most cases.

I also had to make some additional changes to astmm.c to make this work when
both MALLOC_DEBUG and DEBUG_THREADS are enabled.  I disabled tracking of one
of the locks in astmm.c because it gets used inside the replacement memory
allocation routines, and the lock tracking code allocates memory.  This caused
infinite recursion.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-03 19:41:42 +00:00
Tilghman Lesher
1aa9e4fc4d Merged revisions 76937 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r76937 | tilghman | 2007-07-24 17:12:43 -0500 (Tue, 24 Jul 2007) | 10 lines

Merged revisions 76934 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r76934 | tilghman | 2007-07-24 17:11:33 -0500 (Tue, 24 Jul 2007) | 2 lines

Oops, res contains the error code, not errno.  I was wondering why a mutex was reporting "No such file or directory"...

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 22:13:37 +00:00
Russell Bryant
3f414d2aea Remove a message that goes to LOG_ERROR that's not really an error.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-28 19:23:46 +00:00
Joshua Colp
3e0d0362e8 Change trylock output for what already has the lock from an error to a warning.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-08 18:26:50 +00:00
Joshua Colp
193d2932b9 We should probably declare the lock... and not just the constructor/deconstructor.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48928 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-23 19:55:38 +00:00
Russell Bryant
72f23795df Use the correct function to destroy an rwlock in the destructor for an ast_rwlock_t
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48927 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-23 19:51:56 +00:00
Joshua Colp
bbe0a579b2 Add support to see what holds the lock when doing trylock.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 06:34:29 +00:00
Joshua Colp
ae00c6d3fa Set the AST_RWLOCK_INIT_VALUE to the PTHREAD_RWLOCK_INIT_VALUE if it is available, that way outside stuff can determine whether to use a constructor or deconstructor for initialization instead of using the init value.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 16:51:27 +00:00
Joshua Colp
aebb4aaa0d I'm crazy so I will add this... pthread rwlock wrappers, along with autoconf stuff that detects the presence of the initializer and the ability to set the kind of lock (in our case we rather like writer preferred locks so writer starvation doesn't occur... but on something like Darwin we don't get that)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 16:28:13 +00:00
Olle Johansson
8a2e564df5 Issue 8246 Doxygen updates (kshumard)
THANK YOU!



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46434 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-30 16:33:02 +00:00
Kevin P. Fleming
ccc221ed79 Merged revisions 43952 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r43952 | kpfleming | 2006-09-28 17:42:18 -0500 (Thu, 28 Sep 2006) | 2 lines

eliminate compiler warning when DEBUG_CHANNEL_LOCKS is enabled and users of this header file don't also include channel.h

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-28 22:43:24 +00:00
Kevin P. Fleming
734a3d356e don't need two copies of this
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43239 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 22:14:09 +00:00