void addPendingCredits(int channelId, int delta) { if (delta <= 0) { return; } synchronized (mConn) { ChannelControlBlock ccb = ccbArray[channelId]; if (ccb != null) { if (ccb.getRemoteEOS()) { return; } int oldCredits = ccb.getReadCredits(); ccb.setReadCredits(oldCredits + delta); if (oldCredits == 0) { assert !pendingChannelCreditsBitmap.get(channelId); pendingChannelCreditsBitmap.set(channelId); pendingWriteEventsCounter.increment(); } } } }
if (credits <= MuxDemuxCommand.MAX_DATA_VALUE) { effectiveCredits = credits; ccb.setReadCredits(0); pendingChannelCreditsBitmap.clear(j); } else { effectiveCredits = MuxDemuxCommand.MAX_DATA_VALUE; ccb.setReadCredits(credits - effectiveCredits);