ibis.ipl
Interface Upcall


public interface Upcall

Describes the interface for upcall based communication. Creating a ReceivePort with an Upcall allows for upcall based communication. The ReceivePort must be created with the PortType.createReceivePort(String, Upcall) method, or one of its other variants with a Upcall parameter. After the receive port is created, upcalls can be enabled through the ReceivePort.enableUpcalls() call, and disabled through the ReceivePort.disableUpcalls() call. Initially, upcalls are disabled.

For a given receive port, only one message can be active at any time, and by default, the message is active as long as the upcall is active. However, the message can be de-activated using the ReadMessage.finish() call. This is the only way in which a receive port can have more than one active upcall.

Note: to prevent deadlocks, upcalls are not allowed to block in condition synchronization or network access as long as the message is active. However, upcalls are allowed to enter/exit synchronized methods for critical section operation.


Method Summary
 void upcall(ReadMessage m)
          This is the upcall announcing the receipt of a ReadMessage.
 

Method Detail

upcall

public void upcall(ReadMessage m)
            throws java.io.IOException
This is the upcall announcing the receipt of a ReadMessage.

Parameters:
m - the message received.
Throws:
java.io.IOException - may be thrown by any of the methods invoked on the message.


The Ibis project