oss: Introduce sound device lock.
authorAndre Noll <maan@systemlinux.org>
Tue, 15 Apr 2014 13:18:45 +0000 (13:18 +0000)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 21 Sep 2014 11:22:25 +0000 (13:22 +0200)
commit5414dfd4356e63634f1a4e94382d14e200759d18
tree8f60555c395a289fcb4c42374d359c1382d720aa
parent2d61a8005c74e9849ef53cd06113edf23cf72474
oss: Introduce sound device lock.

Unlike ALSA with dmix, the OSS driver allows only a single opener of
the sound device at any given time. With para_audiod it may happen
that the writer of the buffer tree for the next audio file tries to
open the device while the old writer is still active. If this happens,
the second writer fails to open the device which causes the whole
buffer tree to be aborted.

This patch serializes access to the OSS sound device by adding
a locking mechanism to oss_write.c. Since audiod is single threaded
this is rather simple: The lock is taken in oss_post_select() when
the device is opened. It is released in oss_close() after the file
descriptor has been closed.
oss_write.c