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