Skip to content

Commit

Permalink
#1998 P25 Traffic Channel Manager error ConcurrentModification on All…
Browse files Browse the repository at this point in the history
…ocated Channels Map, introduced in #1996
  • Loading branch information
Dennis Sheirer committed Oct 2, 2024
1 parent 161595e commit 600db3f
Showing 1 changed file with 8 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedTransferQueue;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.BiConsumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -171,23 +170,21 @@ protected void processControlFrequencyUpdate(long previous, long current, Channe
try
{
//Shutdown all existing traffic channels and clear the maps.
mAllocatedTrafficChannelMap.forEach(new BiConsumer<Long, Channel>()
List<Channel> trafficChannelsToDisable = new ArrayList<>(mAllocatedTrafficChannelMap.values());
mAllocatedTrafficChannelMap.clear();

for(Channel channel : trafficChannelsToDisable)
{
@Override
public void accept(Long aLong, Channel channel)
if(!parentChannel.equals(channel))
{
if(!parentChannel.equals(channel))
{
broadcast(new ChannelEvent(channel, Event.REQUEST_DISABLE));
}
broadcast(new ChannelEvent(channel, Event.REQUEST_DISABLE));
}
});
}

mAllocatedTrafficChannelMap.clear();
mTS1ChannelGrantEventMap.clear();
mTS2ChannelGrantEventMap.clear();

//Store the control channel in the allocated channel map so that we don't allocate a traffic channel against it
//Store the current control channel in the allocated channel map so that we don't allocate a traffic channel against it
mAllocatedTrafficChannelMap.put(current, parentChannel);
}
finally
Expand Down

0 comments on commit 600db3f

Please sign in to comment.