I'm working on infrastructure to make it easy to interact with CFRunLoop callback APIs for assistive technology. Specifically I am interested in making sure I can hand off a reference type as an unsafe pointer as a context pointer and safely use it in the callback.
Part of that is using zeroing weak references. which I've posted about separately.
Part of that is wanting to interact with normal async/await/actor semantics as part of adding and removing callbacks. For this I added a SerialExecutor
tied to a persistent run loop thread and made an associated GlobalActor
You can see them here as ObserverRunLoopActor
and SystemObserver
and see them further extended here as ApplicationObserver
.
I'm hoping for feedback on if this is a valid and/or expected use case for SerialExecutor
and what if anything I would want to adjust or how I might contribute to that API becoming public.