On 08/18/2014 04:02 PM, Lennart Poettering wrote: > On Fri, 15.08.14 14:16, Marcel Holtmann (mar...@holtmann.org) wrote:
>> Blindly sending messages is never a good idea. You want to poll for >> POLLOUT first. This does not make a big difference for current kernel, >> but it allows future extensions when the clients are well behaving and >> just waiting for POLLOUT. Meaning once the kernel does not signal >> POLLOUT, no new messages will come from the client. >> >> Current code does not do this POLLOUT before sending a messages, but >> our kdbus client actually does that. It is the right thing to do. And >> we have been doing this with all of our protocols that are using >> asynchronous IO. No point in kdbus being any different. > > Well, kdbus keeps per-reciever buffers only, hence signalling on the > kdbus fd when you are able to write is not really possible, since this > information is not bound to the sender fd but only to the receiever of > which there are many... Exactly. > If I understand you correctly you hence want the > kdbus fd to always return EPOLLOUT then, because if a client wants to > send something it can do that at any time? > > If that's the case then POLLOUT should really be ORed into the mask > unconditionally, not just in some cases... Yes, except when the connection is dead. I've pushed a patch to do that, please check. Thanks, Daniel _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel