Skip to content

How to share libuv between multiple libraries #52

Description

@iceboy233

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?

Activity

  1. asvetlov commented on Sep 3, 2016

    @asvetlov
    Contributor

    To achieve it uvloop should only expose uv_loop_t instance, isn't it?

  2. 1st1 commented on Sep 3, 2016

    @1st1
    Member

    What's the use case?

  3. iceboy233 commented on Sep 4, 2016

    @iceboy233
    Author

    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.

  4. 1st1 commented on Sep 5, 2016

    @1st1
    Member

    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.

  5. 1st1 commented on Oct 21, 2016

    @1st1
    Member

    @iceb0y Are you still working on this? I could probably expose a semi-public ctypes Ptr to the libuv event loop.

  6. MarkReedZ commented on Apr 11, 2018

    @MarkReedZ

    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

  7. MarkReedZ commented on Apr 13, 2018

    @MarkReedZ

    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.

  8. fantix commented on Sep 9, 2022

    @fantix
    Member

    Fixed in #310

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions