Hello Kent, > Don't top reply - reply inline instead. Sorry, still new here. > Firstly, as noted, if you are talking separate requests then they are > separate objects and you can do what you like. So have one request for > your PWM edge generator and another for the lines to read/write. It doesn't add much, but just to clarify, the PWM signal is not generated through libgpiod, I only use line requests to read lines and edge events. > In the current implementation, the gpiod_line_request object is immutable > so it is safe to access it from multiple threads. Thanks for giving insights into the current implementation. Knowing this opens up a lot of easier options for synchronization, for example synchronizing only writes (maybe not even necessary). > Or it may be a defensive measure - in case > a future change makes a currently immutable object mutable. However, I also understand that the restrictive nature of the documentation could presumably be designed for changes in the future. Due to this I am a bit undecided whether I should base the C# binding on the current implementation, but there is probably not much else left for me. Even creating a separate request object for every individual line would not fully solve the problem to be quick in reading edge events and reading/writing lines of the same request object, while adhering to the restrictions of the current documentation. Regards, Mathias