Tim,

> could the following two lines cause the issue?
> 
> hpx::apply<server::Block::receiveImage_action>(recipient, this->image);
>      delete this;
> 
> Basically, we're invoking a fire and forget action with a member
> variable (which will be serialized) as parameter. Afterwards, the
> instance is directly deleted.   I guess the serialization/parameter
> transmission of the action does not happen right away and we're deleting
> the send buffer too early.
> 
> How can we know - without using async() and waiting for the future -
> that the "fire part" of fire and forget has been completed and we can
> delete the send buffer?

You might want to do this instead:

    hpx::apply_cb<server::Block::receiveImage_action>(
        recipient, 
        [this]() mutable { delete this; }
        this->image);

instead.

hpx::apply_cb calls the supplied function whenever it's safe to release the
data.

Regards Hartmut
---------------
http://boost-spirit.com
http://stellar.cct.lsu.edu



_______________________________________________
hpx-users mailing list
hpx-users@stellar.cct.lsu.edu
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

Reply via email to