mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-27 22:50:42 +00:00
Change mutex tracking so that it only consumes memory in the core mutex object when it's actually being used.
This reduces the overall size of a mutex which was 3016 bytes before this back down to 216 bytes (this is on 64-bit Linux with a glibc-implemented mutex). The exactness of the numbers here may vary slightly based upon how mutexes are implemented on a platform, but the long and short of it is that prior to this commit, chan_iax2 held down 98MB of memory on a 64-bit system for nothing more than a table of 32767 locks. After this commit, the same table occupies a mere 7MB of memory. (closes issue #18194) Reported by: job Patches: 20110124__issue18194.diff.txt uploaded by tilghman (license 14) Tested by: tilghman Review: https://reviewboard.asterisk.org/r/1066 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@304950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -782,7 +782,7 @@ static void append_lock_information(struct ast_str **str, struct thr_lock_info *
|
||||
return;
|
||||
|
||||
lock = lock_info->locks[i].lock_addr;
|
||||
lt = &lock->track;
|
||||
lt = lock->track;
|
||||
ast_reentrancy_lock(lt);
|
||||
for (j = 0; *str && j < lt->reentrancy; j++) {
|
||||
ast_str_append(str, 0, "=== --- ---> Locked Here: %s line %d (%s)\n",
|
||||
|
||||
Reference in New Issue
Block a user