Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Synchronous Execution of Astro Startup Jobs and minor fixes #3746
The scheduling operations schedules few jobs and executes 2 specific jobs immediately. These two jobs are executed in a different thread to prevent blocking the thread that spawns it.
In addition, during handler initialize, channel linking and unlinking, we reschedule the jobs. And every time, before we reschedule the jobs, we remove the jobs from the ESH Core scheduler that are associated with the current thing.
As the jobs that execute immediately are handled by different threads, it is sometime noticed that while rescheduling, removal of jobs did occur after the jobs got rescheduled. This created unexpected issues in ESH Core scheduler. In this PR, we have rendered the asynchronous operations of executing immediate jobs in different threads to synchronous execution so that we can make sure the removal always happens before rescheduling.
Another note is that previously we required
Thanks for this fix!
I can confirm that the equals/hashcode implementation indeed was messing up the internal calculations of the next execution time in the scheduler.
Doing the initial job scheduling synchronously also sounds like a pretty good idea to me.
@amitjoy could you please fix the commit message and additionally include a sign-off-by line?