It looks like capnp.wait_forever() is actually implemented as
kj::NEVER_DONE.wait() under the hood.

Can you provide more complete example code that we would be able to build
and run?

-Kenton

On Wed, Feb 14, 2018 at 2:45 PM, <[email protected]> wrote:

> I have a use-case which is similar to streaming RPC to a server written in
> C++ - here is a simplified example:
>
> # Setup a client and connect it to our task server
> client = capnp.TwoPartyClient('localhost:8000')
> task_mgr = client.bootstrap().cast_as(schema.Task)
>
> class Notifier(schema.Notifier.Server):
>     def notify(self, params, **kwargs):
>         print "notifying"
>
> task = task_mgr.create(type=0)
> n = Notifier()
> task.add_notifier(n).wait()
>
> task.run().wait()
>
> capnp.wait_forever()
>
> The C++ server will kick off the task which will call the notifier's
> notify asynchronously.  The C++ client works as expected (I get notify
> callbacks when the task wants to notify).  The python client seems to be
> unable to pump the message loop.  I see an example with a threaded client
> which involves repeatedly chaining promises to make something like this
> work, but is there an easier way?
>
> I was hoping that the capnp.wait_forever() would take care of pumping the
> loop and executing any callbacks, similar to my 
> kj::NEVER_DONE.wait(client.getWaitScope());
> in the C++ client...
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Cap'n Proto" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> Visit this group at https://groups.google.com/group/capnproto.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to