No description
Find a file
Tanu Kaskinen d404d8d1ab sink, source: remove some assumptions about stream "attached" state
Streams are detached when they are removed or moved away from a device,
or when a filter device that they're connected to is removed or moved.
If these cases overlap, a crash will happen due to "double-detaching".
This can happen if a filter sink is removed, and a stream connected to
that filter sink removes itself when its sink goes away.

Here are the steps in more detail: When a filter sink is unloaded, first
it will unlink its own sink input. This will cause the filter sink's
input to be detached. The filter sink propagates the detachment to all
inputs connected to it using pa_sink_detach_within_thread(). After the
filter sink is done unlinking its own sink input, it will unlink the
sink. This will cause at least module-combine-sink to remove its sink
input if it had one connected to the removed filter sink. When the
combine sink removes its sink input, that input will get detached again,
and a crash follows.

We can relax the assertions a bit, and skip the detach() call if the
sink input is already detached.

I think a better fix would be to unlink the sink before the sink input
when unloading a filter sink - that way we could avoid the
double-detaching - but that would be a much more complicated change. I
decided to go with this simple fix for now.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=98617
2016-12-20 01:38:17 +02:00
doc doc: Add an example stream-restore fallback table file. 2011-10-01 13:25:16 +01:00
doxygen update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
m4 build-sys: Move to compiling with C11 support 2016-02-25 09:09:13 +05:30
man daemon-conf: enable memfd by default 2016-09-09 19:42:24 +03:00
po i18n: update Polish translation 2016-11-27 18:39:40 +02:00
scripts scripts: Plot memory benchmarks using gnuplot 2015-10-31 15:29:48 +02:00
shell-completion core: Support memfd transport; bump protocol version 2016-04-27 18:37:08 +05:30
src sink, source: remove some assumptions about stream "attached" state 2016-12-20 01:38:17 +02:00
vala vala: Added cnames to callback delegates in Vala VAPI 2016-01-22 13:25:29 +05:30
.gitignore gitignore: Add .orig and .rej to gitignore 2015-12-18 13:34:46 +01:00
.mailmap add a .mailmap file for git shortlog 2009-02-04 22:41:45 +01:00
.travis.yml travis: Run make install in travis. 2015-12-29 05:36:50 +05:30
autogen.sh update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
bootstrap.sh build-sys: bootstrap.sh: Do a make only if configure has succeeded 2015-09-25 15:05:43 +03:00
configure.ac remove module-xenpv-sink 2016-12-09 13:09:26 +02:00
git-version-gen git-version-gen: Avoid further processing when tarball-version is present 2015-10-20 16:55:23 +02:00
GPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
LGPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
libpulse-mainloop-glib.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse-simple.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
LICENSE lfe-filter: Import code from the Chrome OS audio server 2015-03-30 10:52:29 +02:00
Makefile.am scripts: Plot memory benchmarks using gnuplot 2015-10-31 15:29:48 +02:00
NEWS Update NEWS for 9.0 2016-06-22 12:22:04 +05:30
orc.mak build-sys: Move ORC_SOURCE definitions outside of "if HAVE_ORC" 2014-01-24 22:56:27 +02:00
PROTOCOL protocol-native: Don't signal memfd support for 9.0 clients 2016-11-19 15:11:59 +02:00
pulseaudio-text.svg merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
pulseaudio.supp Add a Valgrind suppression file 2014-09-21 11:00:51 +03:00
pulseaudio.svg Add PulseAudio logo to tree. 2006-08-28 06:25:41 +00:00
PulseAudioConfig.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
PulseAudioConfigVersion.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
README Remove link to CIA from README 2014-10-28 17:36:21 +01:00
todo Update todo 2011-06-24 00:35:26 +01:00

PULSEAUDIO SOUND SERVER

WEB SITE:
	http://pulseaudio.org/

GIT:
	git://anongit.freedesktop.org/pulseaudio/pulseaudio

GITWEB/CGIT:
	http://cgit.freedesktop.org/pulseaudio/pulseaudio/

MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

GIT COMMITS MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs

IRC:
	#pulseaudio on irc.freenode.org

FRESHMEAT:
	http://freshmeat.net/projects/pulseaudio/

OHLOH:
	http://www.ohloh.net/projects/4038

AUTHORS:
	Several

HACKING:
	In order to run pulseaudio from the build dir __OPTIMIZE__ should be
	disabled (look at src/pulsecore/core-util.h::pa_run_from_build_tree()),
	this can be done by passing "CFLAGS=-O0" to the configure script:
	  ./autogen.sh
	  CFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure
	  make
	  ./src/pulseaudio -n -F src/default.pa -p $(pwd)/src/

SPELLING:
        PulseAudio