-
Notifications
You must be signed in to change notification settings - Fork 565
How to share libuv between multiple libraries #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
To achieve it uvloop should only expose |
What's the use case? |
I'm playing with a HTTP server called h2o which supports to be used as a library and I'm trying to make a python binding for it (just for fun now - if it could be done, we can get a super high performance HTTP server). The server supports its own event loop and also uv loop. It'll be nice if we could make python bindings of these kind of libraries which share a single event loop. |
Interesting. Well, in theory we could provide some API for that, but somebody will have to pioneer and submit a PR with an example use case code. |
@iceb0y Are you still working on this? I could probably expose a semi-public ctypes Ptr to the libuv event loop. |
Well, I'll need that too, I am writing a portable messaging library chirp connecting the major platforms (python, node, ruby... etc and C of course). The most efficient way to write bindings is uvloop and chirp sharing uv_loop_t. It shouldn't be too difficult to grab the pointer somewhere. It will take some time till I am writing the bindings... if there is no API for this till then, I'l do the PR. |
I have a server that sets up uvloop in python then runs in C. To access the loop I call out to python. It would be nice to have access to the uv_loop_t to attach say this redis C client to the loop using the following code. https://github.com/redis/hiredis/blob/master/adapters/libuv.h |
Exposing the loop may not be a good idea as I believe I see uvloop and other libraries using the loop's data field. It would at least need a note. Locally I've exposed the loop by adding a function that returns it as a PyLong and am using it. |
Fixed in #310 |
If there are other C libraries using libuv and expose python interface, is there a way to use the same uv event loop for uvloop and the library?
The text was updated successfully, but these errors were encountered: