/// <exception cref="System.IO.IOException"/> internal DfsClientShm(ShortCircuitShm.ShmId shmId, FileInputStream stream, DfsClientShmManager.EndpointShmManager manager, DomainPeer peer) : base(shmId, stream) { this.manager = manager; this.peer = peer; }
/// <exception cref="System.IO.IOException"/> public virtual ShortCircuitShm.Slot AllocSlot(DatanodeInfo datanode, DomainPeer peer , MutableBoolean usedPeer, ExtendedBlockId blockId, string clientName) { Lock.Lock(); try { if (closed) { Log.Trace(this + ": the DfsClientShmManager isclosed."); return(null); } DfsClientShmManager.EndpointShmManager shmManager = datanodes[datanode]; if (shmManager == null) { shmManager = new DfsClientShmManager.EndpointShmManager(this, datanode); datanodes[datanode] = shmManager; } return(shmManager.AllocSlot(peer, usedPeer, clientName, blockId)); } finally { Lock.Unlock(); } }