public void run() {
while ( run ) {
LinkObject link = queue.remove();
if ( link == null ) continue; //should not happen unless we exceed wait time
while ( link != null && run ) {
ChannelMessage msg = link.data();
Member[] destination = link.getDestination();
try {
super.sendMessage(destination,msg,null);
try {
if ( link.getHandler() != null ) link.getHandler().handleCompletion(destination,msg);