Javadoc
This method write the message on the wire. It MUST never be called
more than once. Previously we were sending the message in the
constructor, but that opens a small timing window where a reply
could return before the code returns and this object gets queued
on the MessageAgentQueue. In that small case, the application
would not wake up on the reply. Making this method separate, closes
that window but opens the possibility for misuse. We do not
enforce the requirement that it be called only once as that adds
extra synchronization. We depend on the interal API to act correctly.
When the message is sent, the timer thread is started to time
the message.