Skip to content

Which agent executes a job? #2642

Open
Open
@jmdyck

Description

@jmdyck

Based on 9.7 Agents, it seems like the Agents exist to execute jobs:

An agent's executing thread executes a job on the agent's execution contexts ...
While an agent's executing thread executes jobs, the agent is the 'surrounding agent' for the code in those jobs.

So it's odd that 9.5 Jobs and Host Operations to Enqueue Jobs says absolutely nothing about agents. For instance, consider this sentence in the discussion about executing a job:

At some future point in time, when there is no running execution context and the execution context stack is empty, the implementation must: [invoke the job]

We know that "running execution context" and "execution context stack" are components/attributes of an agent, so there must be an agent involved in the above sentence, but it's not being mentioned. Is the implementation obliged to use the same agent that scheduled/enqueued the job? If so, that seems like an important restriction that's going unstated. If not, then is there any restriction on the agent used (other than the empty EC stack)? Could the implementation create a new agent to execute a job?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions