On Mon, 2 Mar 2009, Jean Delvare wrote:
> On Mon, 2 Mar 2009 17:03:49 +0100, Jean Delvare wrote:
> > As far as I can see the key difference between bttv-input and
> > cx88-input is that bttv-input only uses a simple self-rearming timer,
> > while cx88-input uses a timer and a separate workqueue. The timer runs
> > the workqueue, which rearms the timer, etc. When you flush the timer,
> > the separate workqueue can be still active. I presume this is what
> > happens on my system. I guess the reason for the separate workqueue is
> > that the processing may take some time and we don't want to hurt the
> > system's performance?
> >
> > So we need to flush both the event workqueue (with
> > flush_scheduled_work) and the separate workqueue (with
> > flush_workqueue), at the same time, otherwise the active one may rearm

What are the two work queues are you talking about?  I don't see any actual
work queues created.  Just one work function that is scheduled on the
system work queue.  The timer is a softirq and doesn't run on a work queue.

> Switching to delayed_work seems to do the trick (note this is a 2.6.28
> patch):

Makes the most sense to me.  I was just about to make a patch to do the
same thing when I got your email.  Though I was going to patch the v4l-dvb
sources to avoid porting work.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to