[PATCH weston v2 1/2] compositor, backends: weston_compositor_read_presentation_clock

Pekka Paalanen ppaalanen at gmail.com
Fri Mar 20 03:18:13 PDT 2015


On Thu, 19 Mar 2015 11:29:52 -0700
Bryce Harrington <bryce at osg.samsung.com> wrote:

> On Thu, Mar 19, 2015 at 11:55:06AM +0200, Pekka Paalanen wrote:
> > On Wed, 18 Mar 2015 10:58:37 -0700
> > Bryce Harrington <bryce at osg.samsung.com> wrote:
> > 
> > > On Wed, Mar 18, 2015 at 03:27:21PM +0200, Pekka Paalanen wrote:
> > > > From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > > > 
> > > If 0 time is returned, are we certain that's not going to screw up
> > > callers in some unexpected way?
> > 
> > We don't care too much. Reading the current time is always
> > somewhat uncertain and the calling code should be implicitly already
> > dealing with surprising values. Like in the follow-up I have a sanity
> > check to not delay for more than a second in the worst case.
> >
> > > If it's never meant to fail, and we don't want to propagate error codes
> > > from here, why not assert()?
> > 
> > It's not an assert() because there is a good chance it might not be a
> > bug in Weston's own code. If Weston is used in production, logging the
> > error and having a glitch is IMHO better than outright dying.
> 
> The man page of assert() indicates that for non-debug builds (NDEBUG not
> defined), the assert() macro does nothing.  Aside from logging an error
> message, it seems to do what you want?

Non-debug means NDEBUG is defined - does anyone actually use that?
It prevents running our test suite, too.

> > I think we are missing a bit of infrastructure here: an assert-like
> > macro that in debug builds aborts, but in production builds just logs
> > the error with as much detail as possible and attempts to continue.
> > It'd be good to also include rate limiting of logging.
> 
> Yes, I'd love to see this, I think it'd solve the need nicely.
> 
> > > Otherwise, seems to me like there'd be little harm propagating the error
> > > by returning false.  The current callers do ignore clock_gettime's
> > > return, but maybe some test someday will want to test conditions where
> > > clock_gettime wouldn't work properly...
> > 
> > Easy enough to change the return type when such a user appears. Until
> > then I don't see the point.
> > 
> > > 
> > > Apart from the error handling, rest looks fine:
> > > 
> > > Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
> > 
> > Is my explanation satisfactory enough?
> 
> Welll, it didn't change my mind.  :-) But the issue is pretty minor, and
> not worth blocking on if you want to land it as-is.

Ok, cool. If we get the infra, it's an easy grepping for 'warned' or
even weston_log and assert to find the places that will benefit.


Thanks,
pq


More information about the wayland-devel mailing list