public AsyncCluster(AsyncClientPolicy policy, Host[] hosts) : base(policy, hosts) { maxCommands = policy.asyncMaxCommands; switch (policy.asyncMaxCommandAction) { case MaxCommandAction.REJECT: commandQueue = new AsyncCommandRejectingQueue(); break; case MaxCommandAction.BLOCK: commandQueue = new AsyncCommandBlockingQueue(); break; case MaxCommandAction.DELAY: commandQueue = new AsyncCommandDelayingQueue(); break; default: throw new AerospikeException(ResultCode.PARAMETER_ERROR, "Unsupported MaxCommandAction value: " + policy.asyncMaxCommandAction.ToString() + "."); } for (int i = 0; i < maxCommands; i++) { SocketAsyncEventArgs eventArgs = new SocketAsyncEventArgs(); eventArgs.UserToken = new BufferSegment(); eventArgs.Completed += AsyncCommand.SocketListener; commandQueue.ReleaseArgs(eventArgs); } bufferPool = new BufferPool(); InitTendThread(policy.failIfNotConnected); }