Em 28-06-2011 09:21, Andy Walls escreveu: > Mauro Carvalho Chehab <mche...@redhat.com> wrote:
>> I'm not very comfortable with vb2 returning unexpected errors there. >> Also, >> for me it is clear that, if read will fail, POLLERR should be rised. >> >> Mauro. >> -- >> 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 > > It is also the case that a driver's poll method should never sleep. True. > I will try to find the conversation I had with laurent on interpreting the > POSIX spec on error returns from select() and poll(). I will also try to > find links to previos discussion with Hans on this. > > One issue is how to start streaming with apps that: > - Open /dev/video/ in a nonblocking mode, and > - Use the read() method > > while doing it in a way that is POSIX compliant and doesn't break existing > apps. Well, a first call for poll() may rise a thread that will prepare the buffers, and return with 0 while there's no data available. > The other constraint is to ensure when only poll()-ing for exception > conditions, not having significant IO side effects. > > I'm pretty sure sleeping in a driver's poll() method, or having significant > side effects, is not ine the spirit of the POSIX select() and poll(), even if > the letter of POSIX says nothing about it. > > The method I suggested to Hans is completely POSIX compliant for apps using > read() and select() and was checked against MythTV as having no bad side > effects. (And by thought experiment doesn't break any sensible app using > nonblocking IO with select() and read().) > > I did not do analysis for apps that use mmap(), which I guess is the current > concern. The concern is that it is pointing that there are available data, even when there is an error. This looks like a POSIX violation for me. Cheers, Mauro. -- 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