On 4/6/20 2:11 PM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments
07.04.2020 00:02, Sowjanya Komatineni пишет:
Am I understanding correctly that this thread will take 100% CPU,
spinning here, if more than 2 frame-captures queued?
on more than 2 frames captures, it breaks thread and on next wakeup it
continues
The wait_event() won't wait if condition is true.
condition is checked when waitqueue is woken up
https://elixir.bootlin.com/linux/v5.6.2/source/include/linux/wait.h#L462
process is put to sleep until the condition evaluates to true or signal
is received.
condition is checked each time the waitqueue head is woken up.
This is a wrong assumption in accordance to the code.
when every buffer is available as long as we are in streaming, we should
process it.
So if wake up happens when list has buffer, it will be processed but at
a time we limit processing 2 simultaneous buffer capture starts only.