Skip to content

Run executeTool completion steps in parallel #305

Description

@emecii

executeTool() defines completionSteps with an assertion that it runs [=in parallel=], then removes an entry from the traversable navigable's pending tool executions map.

Six of its seven invocations run on a Document event loop: the tool-execute path, both early exits in imperative execute steps, and the promise-reaction paths. This contradicts both the assertion and the map's note that it is only mutated from parallel steps.

A focused repair is to run the body of completionSteps in parallel, preserving its current result handling while making the map mutation conform to the stated invariant. This is distinct from the cancellation-semantics proposals in #299 and #300.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions