synchronized (this) {
final LinkedList writing = writes[index];
if ( writing == null ) {
throw new IndexOutOfBoundsException();
}
writing.addLast(message);
mask |= 1L << index;
final Reaction[] reactions = reactionsPerChannel[index];
for (Reaction reaction: reactions) {
if ( ( reaction.mask & mask ) == reaction.mask ) {
final int[] indices = reaction.indices;