Conversation
|
@Alainx277 could you comment in |
|
bors try |
tryBuild failed: |
it's #2373 |
alice-i-cecile
left a comment
There was a problem hiding this comment.
This is a cool bit of functionality, and the code quality is solid. Eventually we'll want a complete "dynamic_schedule.rs" example, but I'm not sure that's useful with just the one function.
Architecturally, I'm worried about reinventing the wheel and leaky abstractions prominent in the new run_exclusive function that takes in schedule_commands explicitly. I would prefer if we either:
- Extended the
Commandtrait to also take a&mut Schedulein itswritemethod, and then just allow commands to mutate the schedule. - Used the same mechanisms as
Commandsto create a dedicatedScheduleCommands.
Either way, we'd need to update apply_buffers to also operate on the schedule. Exclusive systems should also probably have the ability to modify the schedule.
|
bors try |
tryBuild failed: |
|
CI failure for unrelated nightly issue |
We cannot get a mutable reference to
I'm not sure what you mean by this? There already is a
Same problem as with 1. |
|
Implementation looks good 👍 I dislike the name
I think Also, for exclusive systems:
The PR could do with more doc comments and an example, that can be added in a followup |
Agreed!
I'm not sure how we could reduce the impact, any suggestions? |
|
bors try |
tryBuild failed: |
|
bors try |
tryBuild failed: |
|
bors try |
|
the example crashes for me after around 20 seconds, moving asset loading from the added system to the main system fixes that |
Ratysz
left a comment
There was a problem hiding this comment.
Still not sure about some things.
-
Scheduler*orSchedule*? I really don't like having "scheduler" anywhere in the docs or API, it muddies the waters wrt how things are named and working under the hood. We have a schedule that describes the systems graph, and an executor that executes the systems graph. A "scheduler" sounds to me like something that creates or modifies the graph - which would be fitting here, but we don't have a dedicated command-accepting abstraction for that: the schedule modifies itself. -
The queue is a field of
Worldand not an optional resource. This mingles concerns ofWorldandSchedule- not catastrophically, but it will be grating for standalonebevy_ecsusers that don't use the schedule abstraction.
This is not a call to action, I'd like to discuss these points first.
|
I agree on point 1. The word "scheduler" gives the idea of an agent that creates or modifies a schedule. At this point of time the "scheduler" is actually the programmer, who specifies how systems are ordered and if/when they should run. It is true that the |
|
This PR is obsoleted by the new stageless scheduler. |
Objective
Solution
Further work