Am 2013-09-16 13:16, schrieb Alexander Broekhuis:
Some other remarks/questions:
I noticed you created a new proxy for shm usage. While currently this
is
ok, I think we need to do some refactoring to take out the transport
knowledge from the endpoints, they should only handle
encoding/decoding.
Some generic callback method in the RSA should be called, which then
takes
care of the transport.
I agree, Pepijn told me that Erik Jasman has already done quite a lot
of work to achieve this.
Maybe we could contine with his approach?!
Naming of the shmem files etc is currently fixed (/tmp/...), this
should be
made an property. Now it simply won't work on Win32 at all, although
I am
not sure how shmem is solved on windows, trying to keep the code as
platform independent as possible is always a good thing.
In the RSA (line 543) itself there is a hardcoded reference to
/services/example, why is this?
Hmm .. that's a leftover from the original rsa and indeed superfluous.
When testing "remote-services-shm" and stopping the "example" bundle,
the
discovery tries to deregister an entry, this results in a call to
register
which somehow fails with an segfault. Maybe I am missing something,
but
there is no removal anywhere. How is this supposed to work? Btw,
before the
segfault the following error is printed:
DISCOVERY: Endpoint for example, with filter "(null)" removed
DISCOVERY : discovery_registerSHMService : encoding data from HashMap
failed
As the registered services are held as a hashmap (based on netstring)
in the shared memory, the plan was to do a remove instead of a put if
the value is set to NULL. Probably it is a good idea to rename the
discovery_registerSHMService when I use it for registering and
deregistering.
I have problems getting the code to run on my Mac. I run into several
segfaults, so this needs some more testing before I can commit it.
I will take care about the issues mentioned above and provide an
updated patch.