On 30/09/15 11:37 AM, Bill Spitzak wrote: > > > On Wed, Sep 30, 2015 at 8:59 AM, Derek Foreman <der...@osg.samsung.com > <mailto:der...@osg.samsung.com>> wrote: > > Having an invalid serial number is quite useful - for example, we can > have protocol requests that optionally take a serial number or 0 > instead of having two similar requests. > > Signed-off-by: Derek Foreman <der...@osg.samsung.com > <mailto:der...@osg.samsung.com>> > --- > > Well, let's see where this goes ;) > > > I certainly hope this sort of thing is accepted.
There was some discussion about it on irc back in February, seemed to be at least a little interest. > I do wonder if we should have a wl_serial_compare() as part of wayland > but the semantics are tricky (a big serial and a small serial may > actually > have happened quite close to eachother if the small happened after a > wrap around). > > > Just let the programmers use signed arithmetic. There is no reason to > make this too complicated. If SIGNED_SERIAL_T is the signed equivalent > to the serial number, then the following will detect if a is before b: > > SIGNED_SERIAL_T(a-b) < 0 > > This sets the "arbitrary distance" to 1/2 the entire serial space. So you're in favour of not bothering to give a helper function in libwayland, and just expecting everyone to do their own thing? Sounds good to me, I'll tally votes before I waste any time writing a helper then. :) > --- a/src/wayland-server.c > +++ b/src/wayland-server.c > @@ -826,7 +826,7 @@ wl_display_create(void) > wl_signal_init(&display->destroy_signal); > > display->id = 1; > - display->serial = 0; > + display->serial = 1; > > wl_array_init(&display->additional_shm_formats); > > @@ -979,6 +979,9 @@ wl_display_next_serial(struct wl_display *display) > { > display->serial++; > > + if (display->serial == 0) > + display->serial++; > + > return display->serial; > } > > > I suspect this causes the first event to have a serial number of 2, not > 1. Not a big deal, but it might be better to initialize the serial > number to zero, or you can initialize it to -1 if you want the structure > to always have a valid serial number. > It's possible, I think, to call wl_display_get_serial() without ever having called wl_display_next_serial() - not sure whether that's considered valid or not. So I figured I'd take a chance at throwing away 1 of the billions in order to not have to worry about that. Thanks for taking a look. _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel