1
mirror of https://github.com/mpv-player/mpv synced 2024-07-11 23:47:56 +02:00
mpv/osdep
wm4 0025f0042f atomics: add atomic_compare_exchange_strong()
As usual, we use C11 semantics, and emulate it if <stdatomic.h> is not
available.

It's a bit messy with __sync_val_compare_and_swap(). We assume it has
"strong" semantics (it can't fail sporadically), but I'm not sure if
this is really the case. On the other hand, weak semantics don't seem to
be possible, since the builtin can't distinguish between the two failure
cases that could occur. Also, to match the C11 interface, use of gcc
builtins is unavoidable. Add a check to the build system to make sure
the compiler supports them (although I don't think there's any compiler
which supports __sync_*, but not these extensions).

Needed for the following commit.
2014-11-09 15:12:54 +01:00
..
ar Kill all tabs 2014-04-13 18:03:01 +02:00
atomics.h atomics: add atomic_compare_exchange_strong() 2014-11-09 15:12:54 +01:00
compiler.h Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
endian.h audio: drop swapped-endian audio formats 2014-09-23 23:09:25 +02:00
glob-win.c glob-win: support Unicode 2014-04-21 02:57:16 +02:00
io.c win32: silence some warnings 2014-11-08 10:24:49 +01:00
io.h osdep: add helper for creating a sane pipe() 2014-10-26 01:40:36 +02:00
macosx_application_objc.h cocoa: move handleFilesArray: to macosx_events 2014-08-06 09:31:58 +02:00
macosx_application.h cocoa: move set_input_context to macosx_events 2014-08-06 09:31:58 +02:00
macosx_application.m Set thread name for debugging 2014-10-19 23:48:40 +02:00
macosx_compat.h cocoa: fix compilation on OS X 10.8 2014-07-14 07:21:44 +02:00
macosx_events_objc.h cocoa: move handleFilesArray: to macosx_events 2014-08-06 09:31:58 +02:00
macosx_events.h cocoa: post keydown and keyup events without event monitor 2014-10-09 22:14:41 +02:00
macosx_events.m cocoa: allow to disable apple remote at compile time 2014-10-17 19:16:58 +02:00
macosx_versions.h cocoa: fix compilation on OS X 10.8 2014-07-14 07:21:44 +02:00
mpv.exe.manifest win32: edit resource files, in particular set CompanyName 2013-09-23 01:44:09 +02:00
mpv.rc Update copyright year 2014-01-01 00:00:00 +01:00
numcores.c vd_ffmpeg: set thread count to number of cores on machine by default 2010-12-20 05:53:28 +02:00
numcores.h vd_ffmpeg: set thread count to number of cores on machine by default 2010-12-20 05:53:28 +02:00
path-macosx.m config: use the same signature for win32/OSX specific path functions 2014-06-26 19:56:45 +02:00
path-win.c win32: change config path priorities 2014-10-23 10:51:51 +02:00
path.h config: use the same signature for win32/OSX specific path functions 2014-06-26 19:56:45 +02:00
semaphore_osx.c osdep/semaphore_osx.c: Include osdep/semaphore.h before #ifdef 2014-09-10 17:22:20 +09:00
semaphore.h osdep: hack to fix build with low quality pthreads-w32 headers 2014-09-20 04:18:40 +02:00
terminal-unix.c terminal: drop ncurses/terminfo/termcap support 2014-10-23 19:48:42 +02:00
terminal-win.c Set thread name for debugging 2014-10-19 23:48:40 +02:00
terminal.h terminal-unix: move to thread 2014-09-10 00:48:12 +02:00
threads.c osdep: potentially fix compilation on OpenBSD 2014-10-31 19:44:42 +01:00
threads.h Set thread name for debugging 2014-10-19 23:48:40 +02:00
timer-darwin.c Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
timer-linux.c timer: reduce ifdef headsplitting-factor 2014-03-09 16:58:00 +01:00
timer-win2.c timer: init only once 2014-02-10 01:12:34 +01:00
timer.c timer: remove unneeded time_t overflow check 2014-05-24 16:17:45 +02:00
timer.h threads: use mpv time for mpthread_cond_timedwait wrapper 2014-05-18 19:20:32 +02:00
w32_keyboard.c w32: use the w32_common keymap in terminal-win too 2014-01-19 14:42:15 +01:00
w32_keyboard.h w32: use the w32_common keymap in terminal-win too 2014-01-19 14:42:15 +01:00
win32-console-wrapper.c win32-console-wrapper: use child process exit code 2014-01-06 13:31:15 +01:00