summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
Commit message (Collapse)AuthorAgeFilesLines
* Mac OS X: add semaphore implementationDaniel Mack2009-10-311-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wed, Sep 16, 2009 at 11:57:04PM +0200, Lennart Poettering wrote: > On Wed, 16.09.09 15:15, Daniel Mack (daniel@caiaq.de) wrote: > > > + s = pa_xnew(pa_semaphore, 1); > > + MPCreateSemaphore(UINT_MAX, value, &(s->sema)); > > + pa_assert(s->sema != 0); > > Hmm, I'd prefer if the ret val of MPCreateSemaphore() would be checked > here. > > Also I find it a bit weird checking for s->sema, though not > initializing it to 0 in the beginning. If the call actually failed, > then the assert will check uninitialized memory. Also, comparing > pointers with 0 sucks. That should be NULL. > > Given that this can not realisitically fail, only in OOM or OOM-like > situations in which case we abort anyway it mght be enough just writing: > > pa_assert_se(MPCreateSemaphore(UINT_MAX, value, &s->sema) == 0); > > (Assuming that success is signalled by retval == 0 on MacOSX) > > > +void pa_semaphore_free(pa_semaphore *s) { > > + pa_assert(s); > > + MPDeleteSemaphore(s->sema); > > Same here. > > > + pa_xfree(s); > > +} > > + > > +void pa_semaphore_post(pa_semaphore *s) { > > + pa_assert(s); > > + MPSignalSemaphore(s->sema); > > And here. > > > +} > > + > > +void pa_semaphore_wait(pa_semaphore *s) { > > + pa_assert(s); > > + /* should probably check return value (-ve is error), noErr is ok. */ > > + MPWaitOnSemaphore(s->sema, kDurationForever); > > And here. Ok, done. See the patch below. Daniel >From 26df2fbae6d9215a3ae084876fb5f79e4d9cf4f0 Mon Sep 17 00:00:00 2001 From: Kim Lester <kim@dfusion.com.au> Date: Wed, 16 Sep 2009 09:23:39 +0800 Subject: [PATCH] Mac OS X: add semaphore implementation
* Wrap clock_gettime and friendsDaniel Mack2009-10-311-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wed, Sep 16, 2009 at 11:48:58PM +0200, Lennart Poettering wrote: > On Wed, 16.09.09 15:15, Daniel Mack (daniel@caiaq.de) wrote: > > > From: Kim Lester <kim@dfusion.com.au> > > > > OS X does not define clockid_t or clock_gettime() and friends. > > Add a wrapper to fix this. > > Hmpf. I am not particularly happy with this. This adds a lot of > unnecessary compat code. We don't actually need implementations of > clock_getres(). All we need is some kind of check whether system > timers are accurate or whether they are rounded up to scheduling > slices. On Linux we do that check with clock_getres(), but all the > information it returns is actually not intertesting at all. We just > check if this is below some trheshold, that's all. > > clock_settime() we don't use at all! We shouldn't carry compat code > for that. > > And clock_gettime we don't really need either. We need some kind of > accurate system timers (preferably monotonic), and on Linux we use > clock_gettime() for that. But we already have a fallback there for > gettimeofday(). > > Or in other words, the current APIs pa_rtclock_get(), > pa_rtclock_hrtimer() is supposed to be the abstract API that has > different backends on different systems. I'd very much prefer if any > MacOS specific code would simply be plugged in there instead of > creating various new abstraction interfaces! Ok - what about the version below? I don't particularily like the Daniel >From 9f0a051953ec354ccdb8aa44a9845c408b26ae0b Mon Sep 17 00:00:00 2001 From: Kim Lester <kim@dfusion.com.au> Date: Wed, 16 Sep 2009 14:40:01 +0800 Subject: [PATCH] Implement pa_rtclock_get() and pa_rtclock_hrtimer() for Darwin OS X does not define clockid_t or clock_gettime() and friends. Add wrappers to fix this. Based on a patch from Kim Lester <kim@dfusion.com.au>.
* X11: attach X11 properties to Screen, not DisplayLeszek Koltunski2009-10-301-6/+14
|
* svolume: fix MMX errorWim Taymans2009-10-301-1/+6
| | | | | We need to sign extend the lower part of the multiplication before adding it to the higher part. Makes -1 * 0xffff work again.
* sink: simplify silence checksWim Taymans2009-10-301-12/+10
|
* socket-util: drop redundant castsLennart Poettering2009-10-301-12/+12
|
* socket-util: allocate at least sizeof(sockaddr_storage) spaceLennart Poettering2009-10-301-2/+2
|
* use pa_fopen_cloexec() where applicableLennart Poettering2009-10-306-10/+10
|
* tdb: use O_CLOEXEC if availableLennart Poettering2009-10-301-9/+34
|
* core-util: introduce pa_fopen_cloexec()Lennart Poettering2009-10-302-2/+28
|
* core-util: make sure to enable FD_CLOEXEC unconditionally to cope with ↵Lennart Poettering2009-10-301-3/+12
| | | | kernels that silently accept but ignore O_CLOEXEC
* use cloexec wrappers wherever applicableLennart Poettering2009-10-3013-62/+22
|
* core-util: introduce FD_CLOEXEC wrappers for open/socket/pipe/acceptLennart Poettering2009-10-302-0/+85
|
* simd: update test casesLennart Poettering2009-10-292-3/+11
|
* smoother: add comments about optimization recommendations from Jason NewtonLennart Poettering2009-10-291-0/+7
|
* libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-291-3/+14
|
* protocol-native: if a client set volume/mute/device store it since it is ↵Lennart Poettering2009-10-281-2/+8
| | | | user input
* protocol-native: declare that user configured volumes are always absoluteLennart Poettering2009-10-281-1/+3
|
* memblock: decrease tile size to 64k againLennart Poettering2009-10-281-1/+1
|
* Fix build when using -fweb, accept both register and memory constraints.Diego Elio 'Flameeyes' Pettenò2009-10-072-4/+4
| | | | | This was reported as Gentoo bug #287391 by Torsten Kaiser, and the fix was suggested by Mike Frysinger.
* Merge remote branch 'phish3/master'Lennart Poettering2009-10-071-1/+1
|\
| * module-equalizer-sink: trying new buffering strategiesJason Newton2009-09-291-1/+1
| |
* | Merge branch 'master' into dbus-workTanu Kaskinen2009-10-0234-316/+505
|\| | | | | | | | | Conflicts: src/daemon/daemon-conf.c
| * svolume: tweak constraints for 32 bitsWim Taymans2009-09-232-4/+4
| | | | | | | | | | | | Tweak the constraints a little so that register starved 32bit systems can select a stack variable for the channel paramter instead of reusing one of the registers we're using in the code.
| * core: dump proplist when creating stream similar to how we already to it for ↵Lennart Poettering2009-09-202-4/+12
| | | | | | | | sinks/sources
| * memtrap: properly add items to linked listLennart Poettering2009-09-191-1/+4
| |
| * namereg: choose default sink/source as soon as one becomes availableLennart Poettering2009-09-181-1/+12
| |
| * memblock: don't try to reuse PA_MEMBLOCK_APPENDED memblocks since they ↵Lennart Poettering2009-09-181-4/+11
| | | | | | | | usually are much bigger than we want them
| * socket-client: modernizationsLennart Poettering2009-09-182-38/+24
| |
| * memblock: modernizationsLennart Poettering2009-09-181-3/+2
| |
| * timeval: make timeval conversion routines handle PA_USEC_INVALID specialLennart Poettering2009-09-181-1/+7
| |
| * core-rtclock: introduce pa_timespec_store() akin pa_timeval_store()Lennart Poettering2009-09-182-0/+15
| |
| * macro: introduce PA_INT_TYPE_MIN, PA_INT_TYPE_MAX, PA_INT_TYPE_SIGNED macrosLennart Poettering2009-09-181-0/+12
| |
| * core-util: unify how we determine the temporary directoryLennart Poettering2009-09-172-10/+25
| |
| * Improve TMPDIR handlingLennart Poettering2009-09-171-1/+1
| | | | | | | | | | | | Patch from 'jnelson', http://pulseaudio.org/ticket/653
| * svolume_mmx: disable test accidentaly left onLennart Poettering2009-09-171-1/+1
| |
| * Merge remote branch 'wtay/optimize'Lennart Poettering2009-09-172-14/+8
| |\
| | * svolume_mmx: optimize some moreWim Taymans2009-09-161-13/+7
| | | | | | | | | | | | | | | | | | We can reorder the algortihm a bit like we do for sse so that we don't need the contants and masking instructions. Saves 2 instructions for the mmx code.
| | * svolume_sse: fix commentWim Taymans2009-09-161-1/+1
| | |
| * | memblock: make it easy to disable mempool usage with $PULSE_MEMPOOL_DISABLELennart Poettering2009-09-171-0/+7
| |/
| * core: add an additional volume factor that is applied after resampling took ↵Lennart Poettering2009-09-112-10/+56
| | | | | | | | place
| * native: send PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED messages only to ↵Lennart Poettering2009-09-101-13/+15
| | | | | | | | clients that understand it
| * simd: be more precise which SIMD optimizations we activateLennart Poettering2009-09-095-16/+28
| |
| * sample-util: add pa_convert_size() call for converting sizes between two ↵Lennart Poettering2009-09-092-0/+12
| | | | | | | | sample specs
| * ratelimit: allow non-static ratelimit structsLennart Poettering2009-09-091-4/+14
| |
| * protocol-native: log explicitly when someone asks us to quitLennart Poettering2009-09-081-0/+2
| |
| * core-util: properly fill in exception array for pa_reset_sigs() ↵Lennart Poettering2009-09-081-1/+1
| | | | | | | | (llvm-clang-analyzer)
| * conf-parser: properly initialize variable we free() later (llvm-clang-analyzer)Lennart Poettering2009-09-081-1/+1
| |
| * cli-command: don't necessarily ovveride failure code of files ↵Lennart Poettering2009-09-081-2/+0
| | | | | | | | (llvm-clang-analyzer)
| * cli-command: modernizationsLennart Poettering2009-09-081-16/+16
| |