Hi,

Don't you think that sending a pointer to a memory is very error prone?
e.g.: object may be destroyed before the receiver gets a serialized copy of
shared_ptr as ref_count will not consider the fact that there is an
instance of pointer in the ZMQ inproc buffer.
IMO it would be better to send an object identifier which could be used by
a receiver to retrieve data from some data provider.

--
Rafal


śr., 24 cze 2020 o 19:56 Sergei Nikulov <[email protected]>
napisał(a):

> On Wed, Jun 24, 2020 at 8:11 PM Serguei Khasimkhanov
> <[email protected]> wrote:
> >
> > Hello all,
> >
> > I have a publisher thread that has a bunch of shared_ptrs to large
> chunks of data. Occasionally I want to share some of those shared_ptrs with
> subscribers (for read-only.) The problem is that ZeroMQ only allows sending
> binary data, not C++ objects. How can I accomplish this?
>
> You should serialize your object on publisher side -> send -> receive
> -> deserialize on subscriber.
> There is no other way except you doing some interprocess communication.
> Ref. https://www.google.com/search?q=c%2B%2B+serialization
>
> >
> > I was thinking I could allocate a copy of the shared_ptr on the heap,
> then publish a pointer to it, but since I don't know when the subscribers
> are done using that pointer, I don't know when to deallocate it.
> >
> > - Ser
> > _______________________________________________
> > zeromq-dev mailing list
> > [email protected]
> > https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> --
> Best Regards,
> Sergei Nikulov
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to