Hi Pappu,

"Parallelism" can mean many things and is a huge topic. You'll probably
need to ask a more specific question to get the answers you seek.

Cap'n Proto serialization is agnostic to concurrency. It's up to you to
make sure a thread has exclusive access to a message before trying to
modify it.

Cap'n Proto RPC has deep support for parallelism. Features like Promise
Pipelining exist to manage parallelism across a network. See:
https://capnproto.org/rpc.html

Cap'n Proto RPC implementations also support concurrency within a process.
Most implementations do this based on event loop concurrency. In C++, we
use a Promise-based API.

You can use threads with Cap'n Proto, but each thread must run its own
event loop. Currently this gets a little awkward as you tend to need to use
pipes or eventfd to wake up another thread. I'd like to have stronger
support for using RPC itself to communicate between threads (without
copying through a socket), as this would allow the same API concurrency
features meant for network communications to be used to coordinate between
threads as well (efficiently). What you'd end up with is an "actor model"
concurrency framework.

-Kenton

On Fri, Dec 7, 2018 at 1:38 PM Pappu <[email protected]> wrote:

> Hi,
> I am new to capnp. Is there any kind of parallelism supported in capnp? If
> so, could you please kindly give me some pointers on this?
>
> Thanks a lot
>
> --
> 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