> * Marshalling happens in the async thread (the same one that
puts the
message on the wire) rather than in the caller's thread
my understanding is that there's no such additional thread, but caller's
thread goes to the network stack even for async calls. I think Bela can put
some light on this.
If you use bundling, the bundler thread writes the bytes to the socket, not
the caller's thread. TCP also uses a special sender thread for each
connection, if use_sender_queues=true (the default).
> * sendMessage() should accept a marshaller and unmarshaller per
invocation
There is a org.jgroups.Buffer that we pass to the org.jgroups.Message we
send across, another, less intrusive way would be to write a lazy wrapper
around it.
Still, FRAG2 needs the actual bytes of the message, and that's a long time
before the message gets passed to the bundler thread.
Cheers
Dan