public override void Reduce(Channel q, object reduce_arg, object current_result, RpcResult child_rpc) {
Channel result = new Channel(1, q);
result.CloseEvent += this.ReduceHandler;
var childrpc_ht = new Hashtable();
ISender rsend = child_rpc.ResultSender;
childrpc_ht["sender"] = rsend != null ? rsend.ToUri() : "sender:localnode";
try {
//If this is an exception, this will throw
childrpc_ht["result"] = child_rpc.Result;
}
catch(Exception x) {
childrpc_ht["result"] = x;
}
_node.Rpc.Invoke(_reduce.First, result, _reduce.Second, reduce_arg, current_result, childrpc_ht);
}
protected void ReduceHandler(object o, EventArgs args) {