On Tue, 11 Oct 2005, Adrian Chadd wrote:

heh. Quick perusal: the comm layer knows about held/resumed FDs.
In my code, the comm layer doesn't know. We kick the read resuming
at the same point (storeClientCopy3()). The epoll() patch doesn't
seem to require any changes to the store server side.

I prefer mine because there wouldn't be any extra code to maintain/check
the deferred fds. the epoll branch, however, does keep track of these FDs
and it lets him make sure FDs don't "disappear" because IO isn't registered
back for said FD.

Right.

I however think I prefer the comm layer being the main responsible for the deferrals. This ensures it's done in the same manner for all the protocols, and allows for less race conditions I think..

But ultimately there would be no need for deferrals at all, and this whole thing being maintained by the store layer pulling data from the protocols (or the client in uploads) rather than the protocols "blindly" pushing data into the store. This however requires a fair bit or restructuring to get it right. But maybe this is sort of what you are doing?

Regards
Henrik

Reply via email to