Hi.

Thanks for the explanation.

2009/8/25 Jerry Johns <jerry.jo...@nuvation.com>

>  The LiveMedia library uses the magical world of select(), which allows
> for monitoring multiple file handle descriptors (or in this case, sockets)
> to monitor for incoming/outgoing data.
>
> By blocking on this select() call, an event loop can process multiple
> socket handles in a single execution context, effectively giving the
> impression of multi-threaded behaviour.
>

I had a vague idea of how it works, and after your explanation have read
this article:
http://www.lowtek.com/sockets/select.html

LiveMedia has a scheduler that you registers a function callback with a
> specific socket handle. A basic pseudo code would be:
>
>
>
> loop:
>
> {
>
> select(descriptor set) à Blocking call
>
> for each SET file handle in descriptor set
>
>        look up corresponding function handler.
>
>        Invoke handler
>
> end for
>
> }
>
>
That's what I don't get - how the scheduler handles incoming data? It forks
new processes to handle it (unlikely)?
Or it just tried to process the data as fast as possible in a single loop?

Regards.
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to