* Introduce SchedulingStateMachine
* Apply all typo fixes from code review
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
* Update word wrapping
* Clarify Token::assume_exclusive_mutating_thread()
* Use slice instead of &Vec<_>
* Improve non-const explanation
* Document consecutive readonly rescheduling opt.
* Make test_gradual_locking terminate for miri
* Avoid unnecessary Task::clone()
* Rename: lock_{status,result} and no attempt_...()
* Add safety comment for get_account_locks_unchecked
* Reduce and comment about Page::blocked_tasks cap.
* Document SchedulingStateMachine::schedule_task()
* Add justification of closure in create_task
* Use the From trait for PageUsage
* Replace unneeded if-let with .expect()
* Add helpful comments for peculiar crossbeam usage
* Fix typo
* Make bug-bounty-exempt statement more clear
* Add test_enfoced_get_account_locks_verification
* Fix typos...
* Big rename: Page => UsageQueue
* Document UsageQueueLoader
* Various minor cleanings for beautifier diff
* Ensure reinitialize() is maintained for new fields
* Remove uneeded impl Send for TokenCell & doc upd.
* Apply typo fixes from code review
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
* Merge similar tests into one
* Remove test_debug
* Remove assertions of task_index()
* Fix UB in TokenCell
* Make schedule_task doc comment simpler
* Document deschedule_task
* Simplify unlock_usage_queue() args
* Add comment for try_unblock() -> None
* Switch to Option<Usage> for fewer assert!s
* Add assert_matches!() to UsageQueue methods
* Add panicking test case for ::reinitialize()
* Use UsageFromTask
* Rename: LockAttempt => LockContext
* Move locking and unlocking methods to usage queue
* Remove outdated comment...
* Remove redundant fn: pop_unblocked_usage_from_task
* Document the index of task
* Clarifty comment a bit
* Update .current_usage inside try_lock()
* Use inspect_err to simplify code
* fix ci...
* Use ()...
* Rename: schedule{,_next}_unblocked_task()
* Rename: {try_lock,unlock}_{for_task,usage_queues}
* Test solana-unified-scheduler-logic under miri
* Test UB to illustrate limitation of TokenCell
* Test UB of using multiple tokens at the same time
---------
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
* Introduce primitive threading in unified scheduler
* Make the internal struct ExecutedTask not pub
* Improve wording a bit
* Explain scheduler main loop's overhead sensitivity
* Improve wording a bit
* Define ChainedChannel{Sender, Receiver} wrappers
* Clean up a bit
* Use derivative to avoid manual Clone impl
* Clarify comment
* Remove extra whitespace in comment
* Remove unneeded dyn trait for ChainedChannel
* Remove the accumulator thread for now
* Fix typo
* Use unimplemented!() to convey intention better
* Finalize unified scheduler plumbing with min impl
* Fix comment
* Rename leftover type name...
* Make logging text less ambiguous
* Make PhantomData simplyer without already used S
* Make TaskHandler stateless again
* Introduce HandlerContext to simplify TaskHandler
* Add comment for coexistence of Pool::{new,new_dyn}
* Fix grammar
* Remove confusing const for upcoming changes
* Demote InstalledScheduler::context() into dcou
* Delay drop of context up to return_to_pool()-ing
* Revert "Demote InstalledScheduler::context() into dcou"
This reverts commit 049a126c905df0ba8ad975c5cb1007ae90a21050.
* Revert "Delay drop of context up to return_to_pool()-ing"
This reverts commit 60b1bd2511a714690b0b2331e49bc3d0c72e3475.
* Make context handling really type-safe
* Update comment
* Fix grammar...
* Refine type aliases for boxed traits
* Swap the tuple order for readability & semantics
* Simplify PooledScheduler::result_with_timings type
* Restore .in_sequence()
* Use where for aesthetics
* Simplify if...
* Fix typo...
* Polish ::schedule_execution() a bit
* Fix rebase conflicts..
* Make test more readable
* Fix test failures after rebase...