summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* add pa_once testing codeLennart Poettering2006-09-091-0/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1388 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework pa_once once again, because the once function needs to have ↵Lennart Poettering2006-09-092-9/+74
| | | | | | | | | terminated before pa_once returns, regardless whether the local call executes it or another thread does. With the previous code it might happen that an long-running initializing in a once function is not terminated yet when another thread thinks it already is. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1387 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update for newer APIs: replace direct usage of libatomic_ops by usage of our ↵Lennart Poettering2006-09-092-43/+13
| | | | | | own atomic.h; remove pa_once implementation; always use our pa_once implementation instead of the POSIX version git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1386 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement trival pa_once API based on atomic operationsLennart Poettering2006-09-091-0/+42
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1385 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add static initializer PA_ATOMIC_INIT()Lennart Poettering2006-09-091-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1384 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a test program for the free listLennart Poettering2006-09-091-0/+104
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1383 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement a simple lock-free free listLennart Poettering2006-09-092-0/+265
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1382 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a tiny wrapper around libatomic_ops: pa_atomic_int_t and pa_atomit_ptr_t.Lennart Poettering2006-09-081-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reasoning: This wrapper fixes a few API issues I found with atomic_ops: * AO_t is an int, which can be written to with "=". pa_tomic_int_t however is a struct which due to type-safety enforces proper access with pa_atomic_xx(). (Inspired by the way the Linux kernel handles this) * AO_load()'s parameter is lacking a "const" * Explicitly choosing the proper memory barrier for each call is very difficult and especially hard to debug because most CPUs support only two different barrier types which the eight types defined by atomic_ops are mapped to. Most other software (i.e. glib, Linux kernel) which provides atomic variable access usually do a full barrier in all cases and so should we. Eventually we might choose to add additional memory barrier calls, in which case we can add special versions of the current function with special suffixes. * The function names are unnecesarily long * Atomic pointer accesses are only supported with manual casts. The new pa_atomic_xxx interface borrows heavily from the GLib and Linux kernel atomicity API, though it is different from both of them. In addition this abstract API makes it easy to port PA to different atomicty APIs, if libatomic_ops should ever become out-of-fashion or if the system OS supports atomic primitives anyway. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1381 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't maintain a list of allocated mempool slots, we don't use it anywayLennart Poettering2006-09-071-6/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1380 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_stream thread-safe: use new refcounting system, protect access using ↵Lennart Poettering2006-09-071-28/+93
| | | | | | mutexes git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1379 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add missing channel names (fixes a segfault when parsing invalid channel maps)Lennart Poettering2006-09-071-0/+16
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1378 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix alsa-sink exampleLennart Poettering2006-09-071-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1377 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't hit an assert in the client if posix shm is not availableLennart Poettering2006-09-061-2/+14
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1376 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix indentationLennart Poettering2006-09-061-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1375 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a bogus debug lineLennart Poettering2006-09-061-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1374 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement a few more ioctl()s, including a subset of SNDCTL_DSP_GETOPTR. ↵Lennart Poettering2006-09-062-5/+72
| | | | | | Just enough to make JavaSound work. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1373 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove yet another occurence of pthread_yield() by pa_thread_yield()Lennart Poettering2006-09-041-15/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1372 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add accessor functions for the userdata attached to a pa_thread objectLennart Poettering2006-09-042-0/+15
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1371 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix pa_thread_is_running() for foreign threads; fix a memory leak for ↵Lennart Poettering2006-09-042-1/+27
| | | | | | foreign threads git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1370 fefdeb5f-60dc-0310-8127-8f9354f1896f
* port the threaded mainloop to our new abstract mutex/thread APILennart Poettering2006-09-042-288/+49
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1369 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_thread_self() return a sensible pointer on foreign threadsLennart Poettering2006-09-041-2/+19
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1368 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add missing g_type_init()Lennart Poettering2006-09-021-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1367 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework handling of srcdir != builddir (patch from Flameeyes)Lennart Poettering2006-09-021-7/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1366 fefdeb5f-60dc-0310-8127-8f9354f1896f
* include PTRHEAD_LIBS in pkg-config file (patch from Flameeyes)Lennart Poettering2006-09-021-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1365 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update acx_pthread.m4Lennart Poettering2006-09-021-40/+177
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1364 fefdeb5f-60dc-0310-8127-8f9354f1896f
* allow building when srcdir != builddir (patch from Flameeyes)Lennart Poettering2006-09-021-1/+6
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1363 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a few autoconf warnings (patch by Flameeyes)Lennart Poettering2006-09-021-1/+10
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1362 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix esdcompat for non-gnu systemsLennart Poettering2006-09-021-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1361 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make esdcompat executableLennart Poettering2006-09-021-0/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1360 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Merge FreeBSD compatibility patch (from Flameeyes)Lennart Poettering2006-09-022-0/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1359 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix call to pa_mutex_new().Pierre Ossman2006-09-011-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1358 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add pthread_once() equivalent support.Pierre Ossman2006-09-013-31/+55
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1357 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Thread implementation for Win32.Pierre Ossman2006-09-013-3/+392
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1356 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a race condition with stream connection vs. latency measuremtn (found by ↵Lennart Poettering2006-09-011-17/+19
| | | | | | theBear) git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1355 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Make sure libatomic_ops.a isn't included in win32 builds as libtool doesn'tPierre Ossman2006-08-311-1/+4
| | | | | | | | like static libs in dlls. Everything is in the headers anyway, so we do not need it. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1354 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Also wrap yield functionality so that it can be platform independent.Pierre Ossman2006-08-313-3/+11
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1353 fefdeb5f-60dc-0310-8127-8f9354f1896f
* work around bug in firefox which apparently misuses access() as NULL pointer ↵Lennart Poettering2006-08-311-0/+7
| | | | | | test. Original patch by "alon". (Closes #27) git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1352 fefdeb5f-60dc-0310-8127-8f9354f1896f
* define AO_REQUIRE_CAS in the Makefile instead of each source file, ↵Lennart Poettering2006-08-314-3/+1
| | | | | | effectively reversing r1348 git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1351 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update todoLennart Poettering2006-08-311-0/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1350 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix handling of "running" variableLennart Poettering2006-08-301-3/+8
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1349 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add AO_REQUIRE_CAS as we do.Pierre Ossman2006-08-303-0/+5
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1348 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Make sure the libatomic_ops lib is included.Pierre Ossman2006-08-301-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1347 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Remove check for libatomic_ops library as some systems have no (zero, nada)Pierre Ossman2006-08-301-6/+0
| | | | | | | symbols in it. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1346 fefdeb5f-60dc-0310-8127-8f9354f1896f
* We need to have a callback when changing volume or we might deadlock.Pierre Ossman2006-08-301-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1345 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a threading primitive APILennart Poettering2006-08-296-3/+498
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1344 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_mempool_stat thread-safe/lock-freeLennart Poettering2006-08-295-71/+76
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1343 fefdeb5f-60dc-0310-8127-8f9354f1896f
* modify memory block reference counting to use the new reference counting APILennart Poettering2006-08-293-15/+18
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1342 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add lock-free reference counting macros, based on libatomic-opsLennart Poettering2006-08-292-1/+44
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1341 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add libatomic-ops to hard dependenciesLennart Poettering2006-08-291-0/+12
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1340 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix an misdesigned assert()Lennart Poettering2006-08-281-6/+5
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1339 fefdeb5f-60dc-0310-8127-8f9354f1896f