Dm.ExecutionManagerSourceThe event manager is in charge of the actual event of tasks (as defined by the scheduler), caching event states and invalidating them. It can delegate to worker processes via DelegationManager
type options = {delegation_mode : delegation_mode;completion_options : Protocol.Settings.Completion.t;enableDiagnostics : bool;}Execution state, includes the cache
val invalidate :
Document.document ->
Scheduler.schedule ->
Types.sentence_id ->
state ->
stateReturns the vernac state after the sentence
Events for the main loop
Execution happens in two steps. In particular the event one takes only one task at a time to ease checking for interruption
val build_tasks_for :
Document.document ->
Scheduler.schedule ->
state ->
Types.sentence_id ->
Vernacstate.t * prepared_task list * stateval execute :
state ->
(Vernacstate.t * events * bool) ->
prepared_task ->
state * Vernacstate.t * events * boolval update_overview :
prepared_task ->
prepared_task list ->
state ->
Document.document ->
stateCoq toplevels for delegation without fork