javax.isolate.Link.send()
Sends the given message on this Link. The current thread will block in this method until a receiver is available. When the sender and receiver rendezvous, the message will then be transferred. A normal return indicates that the message was transferred. If an exception occurs on the sender side, no rendezvous will occur and no object will be transferred. But if an exception occurs on the receive(), the sender will see a successful transfer. If the receiving isolate becomes terminated after this method is invoked but before it returns, the link will be closed, a ClosedLinkException will be thrown, any subsequent attempts to use send() will result in a ClosedLinkException, and any Isolate objects corresponding to the receive side of the link will reflect a terminated state. If invoked on a closed link, this method will throw a ClosedLinkException. If close() is invoked on this Link while a thread is blocked in send(), send() will throw a ClosedLinkException. No message will have been transferred in that case. If Thread.interrupt() is invoked on a thread that has not yet completed an invocation of this method, the results are undefined. An InterruptedIOException may or may not be thrown; however, even if not, control will return from the method. Rendezvous and data transfer to the receiving isolate may or may not have occurred. In particular, undetected message loss between sender and receiver may occur. If a failure occurs during the transfer an IOException may be thrown in the sender and the object will not be sent. A transfer may succeed from the sender's point of view, but cause an independent IOException in the receiver. For example, if a message containing a large buffer is sent and the receiver has insufficient heap memory for the buffer or if construction of a link in the receiver isolate fails, an IOException will be thrown in the receiver after the transfer completes. A ClosedLinkException will be thrown if the given LinkMessage contains a closed Link, Socket, or ServerSocket. No object will be transferred in this case. If the current isolate is not a sender on this Link, an UnsupportedOperationException will be thrown. No object will be sent in this case.
@param message
@throws ClosedLinkException
@throws InterruptedIOException
@throws IOException