On Fri, Jun 23, 2023 at 09:57:17AM +0200, Erik Schilling wrote: > On Fri Jun 23, 2023 at 6:39 AM CEST, Kent Gibson wrote: > > Replace tool examples with use case examples drawn from the tools, > > gpio_events example with buffered_event_lifetimes, and > > gpio_threaded_info_events with reconfigure_input_to_output. > > > > Signed-off-by: Kent Gibson <warthog618@xxxxxxxxx> > > Reviewed-by: Erik Schilling <erik.schilling@xxxxxxxxxx> > > > let mut buffer = libgpiod::request::Buffer::new(4)?; > > Slightly tangential: > > Maybe the API should provide some sensible defaults for the buffer size? > (Or just set a sane default and provide ways to override it)? The change > from 1 -> 4 for bulk operations seems reasonable, but I feel like a user > just getting started with all of this likely won't know what might be > good values to pick... > The C API does that - it defaults to 64, IIRC - if you pass in 0. And the Rust will do the same - read the docs: /// Create a new edge event buffer. /// /// If capacity equals 0, it will be set to a default value of 64. If /// capacity is larger than 1024, it will be limited to 1024. Using 64 seems excessive to me, so I explictly set more reasonable sizes in the examples. Btw a casual user is probably fine with 1 - the events will still be buffered in the kernel so the only advantages of > 1 is to reduce the number of reads when handling bursts, and so drain the kernel buffer slightly quicker. I expect that the only users who would see an appreciable difference in behaviour with different userspace buffer sizes probably have a good idea why they want to be setting it. Again, would be good to document that - if it isn't already. Cheers, Kent.