Open DemiMarie opened 5 years ago
Do you mean qubesadmin
python module exposing asyncio
compatible functions? Or some other method for providing asynchronous version of the API?
The qubesadmin module
On Tue, Jan 15, 2019, 11:14 PM Marek Marczykowski-Górecki < notifications@github.com> wrote:
Do you mean qubesadmin python module exposing asyncio compatible functions? Or some other method for providing asynchronous version of the API?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/QubesOS/qubes-issues/issues/4719#issuecomment-454645867, or mute the thread https://github.com/notifications/unsubscribe-auth/AGGWB_CqffVD4X75md4vZHyT4zWGUYmJks5vDqc8gaJpZM4aCO0R .
This is a good idea for community contribution.
This would allow many calls to be made concurrently.
Doing that safely would require much more than just an async interface, to the point where supporting real concurrent requests in the way you would probably like to be able to take advantage of (allowing e.g. get of some property to return immediately during some non-instantaneous unrelated admin.* operation) introduces all kinds of nasty races and reentrancy and such to code that was largely not written with such concerns in mind. I'm not convinced it would be worth the risk to introduce it in the current core architecture.
Backend code of Admin API is asynchronous already. It's the frontend that doesn't expose it.
Internally yes (event-driven, etc.), but I seemed to remember that there was still a big lock for external callers. Can't seem to find it now though, so I guess I must be wrong. Thanks for the correction.
Qubes OS version:
Qubes release 4.0 (R4.0)
Affected component(s):
Qubes Admin API
Steps to reproduce the behavior:
Look at the Python code of any of the tools
Expected behavior:
The Qubes 4 Admin API is asychronous
Actual behavior:
The Qubes 4 Admin API is sychronous
General notes:
This would allow many calls to be made concurrently. I discovered this when writing my own tool in dom0.
Related issues: