[zeromq-dev] ZMQ - Send std::shared_ptr via inproc pub-sub?

Sergei Nikulov sergey.nikulov at gmail.com
Wed Jun 24 20:18:10 CEST 2020


Of course there is wrong way to serialize pointer.

By object I mean target object on which shared_ptr points.

ср, 24 июн. 2020 г., 21:11 Rafał Dudycz <rafal.dudycz at gmail.com>:

> 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 <sergey.nikulov at gmail.com>
> napisał(a):
>
>> On Wed, Jun 24, 2020 at 8:11 PM Serguei Khasimkhanov
>> <SerKhas at hotmail.com> 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
>> > zeromq-dev at lists.zeromq.org
>> > https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>>
>> --
>> Best Regards,
>> Sergei Nikulov
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20200624/a98e3c69/attachment.htm>


More information about the zeromq-dev mailing list