BIND 10 #296: Timeouts on msgq's cc-channel
BIND 10 Development
do-not-reply at isc.org
Wed Aug 4 21:27:34 UTC 2010
#296: Timeouts on msgq's cc-channel
-------------------------------+--------------------------------------------
Reporter: jelte | Owner: jelte
Type: enhancement | Status: new
Priority: major | Milestone: y2 6 month milestone
Component: Unclassified | Resolution:
Keywords: | Sensitive: 0
Estimatedhours: 0.0 | Hours: 0
Billable: 1 | Totalhours: 0
Internal: 0 |
-------------------------------+--------------------------------------------
Comment(by jinmei):
Not sure if we are now in the formal review cycle:-) Would you like it?
If this is a formal review I'd request usual check list:
- add test please
- provide changelog entry please
- and perhaps more
Replying to [comment:3 jelte]:
> > - overall it seems to work as intended, but I'd confirm it works even
if there's another outstanding event and it's completed before this
async_read() is done.
>
> and also block until such is the case?
Not fully thought about what should be specifically tested, but yes,
probably.
> I think it'll require quite a bit of redesign of the msgq interface, as
well as the way it is used (which i suspect is the reason parts of it now
do an 'empty' async read followed by a sync read if that one is triggers)
>
> But yes, we should consider it.
A middle term solution might be to extend our ASIO wrapper to support this
mode and have other modules use it. In any case, that's beyond the scope
of this ticket.
> > - is it okay to ignore other errors than operation_aborted in
async_read()? it's also not clear what this code tries to do by
explicitly excluding operation_aborted.
>
> No the 'real' errors aren't handled right now; the operation_aborted is
an 'error' value that is given when cancel() is called, in which case the
'i am done' boolean isn't set here. Perhaps we should not use a bool but a
return code directly.
The 'real' errors don't seem to be handled anywhere...and yes, we should
probably pass the error code itself back to the caller.
Also, as commented this code logic is not so trivial. Some comments will
help.
> > - I thought the type of the error_code arg in asio callbacks is const
asio::error_code&.
It still seems to lack '&'.
And one additional comment:
- personally, I'd avoid heavily relying on the default parameter. since
it's currently used in a (essentially) private function to session.cc and
all usage uses the default value, I'd rather define a class constant
SessionImpl and use that value in readData(). Please also describe the
rationale (if any) of the magic number of 5.
--
Ticket URL: <http://bind10.isc.org/ticket/296#comment:4>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list