Github user dimas-b commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/899#discussion_r206594732 --- Diff: gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java --- @@ -72,8 +73,19 @@ protected AbstractOpProcessor(final boolean manageTransactions) { * @param context The Gremlin Server {@link Context} object containing settings, request message, etc. * @param itty The result to iterator * @throws TimeoutException if the time taken to serialize the entire result set exceeds the allowable time. + * @see #handleIterator(ResponseHandlerContext, Iterator) */ protected void handleIterator(final Context context, final Iterator itty) throws TimeoutException, InterruptedException { + handleIterator(new ResponseHandlerContext(context), itty); + } + + /** + * A variant of {@link #handleIterator(Context, Iterator)} that is suitable for use in situations when multiple + * threads may produce {@link ResponseStatusCode#isFinalResponse() final} response messages concurrently. + * @see #handleIterator(Context, Iterator) + */ + protected void handleIterator(final ResponseHandlerContext rhc, final Iterator itty) throws TimeoutException, InterruptedException { --- End diff -- None of the existing sub-classes need to call this method, AFAIK. It will only be required if new logic is added to perform asynchronous message writing similar to what happens in `AbstractEvalOpProcessor`.
---