Commit graph

29 commits

Author SHA1 Message Date
Lennart Poettering
2741685d3a use priority inheritance on mutexes where applicable
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1837 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-09-17 00:32:51 +00:00
Lennart Poettering
ac1ee4e675 add new API pa_mempool_block_size_max() to query the maximum tile size
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1831 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-09-16 21:57:15 +00:00
Lennart Poettering
d5bedbcd98 remaining s/assert/pa_assert/ and refcnt.h modernizations
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1809 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-09-11 20:48:33 +00:00
Lennart Poettering
b41dbfd28d fix an assert when runnig module-oss in record only-mode. optimize allocation of memblocks on playback
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1777 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-09-06 23:29:16 +00:00
Lennart Poettering
f36ca79716 add new API pa_memblock_will_need() and make use of PA_PAGE_SIZE macro
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1746 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-09-02 20:37:17 +00:00
Lennart Poettering
687f1f15fc add new function pa_memblock_ref_is_one()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1729 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-08-30 22:42:02 +00:00
Lennart Poettering
4eb9bb0746 fix a bad memory access when destructing pa_memimports
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1711 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-08-23 22:34:49 +00:00
Lennart Poettering
e381dd9e4d 64 bit fixes and minor gcc shut ups
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1656 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-08-12 23:24:05 +00:00
Lennart Poettering
0f155748da protect memimpors with a recursive mutex to avoid deadlock when shutting down
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1604 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-08-09 21:17:32 +00:00
Lennart Poettering
bc17b8ea2d reverse order flist destruction and mempool allocation warning
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1543 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-07-26 13:20:11 +00:00
Lennart Poettering
068f5d5eef drop chunk argument from various drop() functions, since it doesn't make any sense if we want to guarantee always monotonously increasing read pointers; a couple of other fixes
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1529 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-07-25 14:46:40 +00:00
Lennart Poettering
65d54d6aaf s/assert/pa_assert/g; make use of static flist for memblock allocation where applicable; properly initialize length value in pa_memexport_put()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1521 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-07-13 23:27:15 +00:00
Lennart Poettering
63c231ed36 Fix concurrency bug when turning memblock into a local memblock
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1514 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-07-13 12:12:40 +00:00
Lennart Poettering
00da37f2c4 Merge HUGE set of changes temporarily into a branch, to allow me to move them from one machine to another (lock-free and stuff)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1469 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-06-11 12:08:37 +00:00
Lennart Poettering
918cacb4f4 Replace AO_xxx usage with pa_atomic_xxx and friends wherever it makes sense
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1459 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-27 20:38:14 +00:00
Pierre Ossman
06211b7c8f Add copyright notices to all relevant files. (based on svn log)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1426 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-13 15:35:19 +00:00
Pierre Ossman
521daf6f0a Huge trailing whitespace cleanup. Let's keep the tree pure from here on,
mmmkay?


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-01-04 13:43:45 +00:00
Pierre Ossman
8dc6214276 Revert r1404 and keep it on a development branch until it is fully tested.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1409 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-06 13:06:01 +00:00
Lennart Poettering
d210ebbb09 rework memory block management to be thread-safe and mostly lock-free.
pa_memblock is now an opaque structure. Access to its fields is now done
through various accessor functions in a thread-safe manner.

pa_memblock_acquire() and pa_memblock_release() are now used to access the
attached audio data. Why? To allow safe manipulation of the memory pointer
maintained by the memory block. Internally _acquire() and _release() maintain a
reference counter. Please do not confuse this reference counter whith the one
maintained by pa_memblock_ref()/_unref()!

As a side effect this patch removes all direct usages of AO_t and replaces it
with pa_atomic_xxx based code.

This stuff needs some serious testing love. Especially if threads are actively
used.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1404 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:50:56 +00:00
Lennart Poettering
791bbd8e0e don't maintain a list of allocated mempool slots, we don't use it anyway
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1380 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 20:17:25 +00:00
Lennart Poettering
5264d235d2 make pa_mempool_stat thread-safe/lock-free
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1343 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-29 02:01:39 +00:00
Lennart Poettering
327e0cd8e1 modify memory block reference counting to use the new reference counting API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1342 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-29 01:16:47 +00:00
Pierre Ossman
2575b44637 fix typo
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1328 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-23 07:58:07 +00:00
Pierre Ossman
d964459a64 Fix detection of page size for non-POSIX systems.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1312 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:41:23 +00:00
Lennart Poettering
57f0b08cc1 generate per-type memory block statistics
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1293 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 16:25:15 +00:00
Lennart Poettering
fd3fe96ce5 add new function pa_mempool_is_shared() to test whether a memory pool is suitable for SHM data transfers
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1274 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:40:48 +00:00
Lennart Poettering
e385d93e5a remove all occurences of
pa_logXXX(__FILE__":  
   
and replace them by 
  
   pa_logXXX("



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1272 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 21:38:40 +00:00
Lennart Poettering
0e436a6926 Rework memory management to allow shared memory data transfer. The central idea
is to allocate all audio memory blocks from a per-process memory pool which is
available as read-only SHM segment to other local processes. Then, instead of
writing the actual audio data to the socket just write references to this
shared memory pool.

To work optimally all memory blocks should now be of type PA_MEMBLOCK_POOL or
PA_MEMBLOCK_POOL_EXTERNAL. The function pa_memblock_new() now generates memory
blocks of this type by default.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1266 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:55:18 +00:00
Lennart Poettering
f44ba09265 big s/polyp/pulse/g
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1033 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-06-19 21:53:48 +00:00
Renamed from src/polypcore/memblock.c (Browse further)