desktop vfs wiki page

nf2 nf2 at scheinwelt.at
Sat Mar 5 22:43:59 EET 2005


Sean Middleditch wrote:

>I setup a wiki page for dvfs on FreeDesktop, ...
>
First: Congratulations to your wiki page!

I would like to add another argument against a single threaded daemon to 
the "threading" section of the wiki, but i don't know how to put it into 
simple words.

A single threaded daemon which forwards events created by backends has 
another problem not described yet and that's the flow-control issue with 
a async event based system. If the socket or pipe to the VFS client 
happens to be "full" you need a way to stop the backend sending 
messages. Otherwise your daemon main loop might get blocked or you have 
to drop or buffer messages.

This problem has been described in a recent thread which was VFS client 
related, but the problem seems to apply to the daemon also. Have a look 
at the "alternating bitburger" protocol to see how complicated this can 
become. In KIO this problem is solved by taking the event "source" 
file-descriptor out of the main loop select statement...

http://lists.freedesktop.org/archives/xdg/2005-January/005863.html
http://lists.freedesktop.org/archives/xdg/2005-January/005865.html

If you have a thread per VFS client connection in the daemon and a 
push/pull interface for backends this seems to be easier to handle.

Norbert






More information about the xdg mailing list