[linux-dvb] down_interruptible usage
kenneth at linuxtv.org
Sat Aug 6 20:31:43 CEST 2005
I've been searching for the reason why I was _loosing_ filters
in the demuxer, and I've found out the subtle reason.
In dmxdev.c, the dvb_dmxdev_release is calling dvb_dmxdev_filter_free.
This function uses down_interruptible to wait for two mutexes, but
if those are interrupted by a signal, the filter will be _lost_.
This is easily reproducible with a program that creates a few threads,
which open and close the filters regulary, and then running/interrupting
this program some number of times.
Is changing all down_interruptible (that protects freeing a structure)
to down(), or will this have other unseen side-effects?
More information about the linux-dvb