Dan Wilcox wrote:
>
> Howdy,
>
> I'm using distributed objects to pass the ids, versions of other
> distributed objects, as well as the overall state variables, and this is
> working fine.
>
> I have one type of object that contains a pointer and number bytes to an
> area of memory that should be synchronized between nodes. Obviously this
> pointer is useless if sent to another machine, so on startup the app sets
> the data and location in the object. I implemented the applyInstanceData
> and getInstanceData functions and the data is serialized using the pointer
> and size.
>
> This was working fine using the depreciated setInstanceData func, but I've
> moved to Equalizer 0.6 and am trying to remove the use of that function.
>
> Now the objects do not update in the clients and I've narrowed it down to
> the client mapping. When map is called, the object's internal data is
> changed and the pointer is lost (goes to null), so the deserialization
> fails. I tried calling map with eq::net::Object::VERSION_NONE, but still
> the same problem. I put a check in applyInstanceData to not deserialize if
> the object is not mapped (aka VERSION_NONE) and this does not overwrite
> the pointer, but the app crashes unexpectedly ...
>
> There must be something simple I'm missing, because the other objects I
> use that contain regular variables (non pointers) work fine.
>
> Thanks in advace for any info.
>
Ok, sorry I solved it just now ...
in applyInstanceData() ...
memcpy(&_pData, is.getRemainingBuffer(), _ui64DataSize);
is.advanceBuffer(_ui64DataSize);
should be
memcpy(_pData, is.getRemainingBuffer(), _ui64DataSize);
is.advanceBuffer(_ui64DataSize);
I was writing into the pointer address and not where it was pointing ...
--
View this message in context:
http://n2.nabble.com/Problem-when-mapping-Distributed-Objects-tp2468140p2468347.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.
_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com