Stuart pointed me that the hang is made by a function in uvideo.c:
if (SIMPLEQ_EMPTY(&sc->sc_mmap_q)) {
/* mmap queue is empty, block until first frame is queued */
error = tsleep(sc, 0, "vid_mmap", 10 * hz);
if (error)
return (EINVAL);
}But I don't know anything about system calls and kernel internals. And the only queue I understand is supermarket's. Some video expert will take a look if it's worth. ;-) Thanks!
