Summary: 52 instances, 47 unique Text Count // TODO should we respect `is_yielding` by not allowing `current` to be scheduled next? That 1 // TODO it would be a lot nicer if this were a more generic "context" thing that we passed 1 // TODO in the paper, the i'th change point gets priority i, whereas this gives d-i. 1 // TODO this is the RefCell biting us again 2 // TODO we shouldn't need to do this, but RefCell is not Send 1 // TODO would be nice to make this generic in the type of `seed`, but for now all our seeds are u64s 1 // TODO consider removing this -- round robin scheduling is never what you want. 1 // TODO Check that the argument above is sound 1 // TODO should always be in the waiters? 1 // TODO implement true support for `Arc` 1 // TODO: Implement park(), unpark() 1 // TODO The documentation for `Barrier` states that 1 // TODO this thread to win the lock when it ran us after the context switch above. 1 // TODO implement (only tokio provides this) 1 // TODO we shouldn't need to do this, but RefCell is not Send, and anything we put within a Mutex 1 // TODO a bit of a bummer that we have to do this (it would be cleaner if those threads 1 // TODO allocated stack size is at least the requested `stack_size` 1 // TODO A single (arbitrary) thread will receive a `BarrierWaitResult` that returns true 1 // TODO to use an existing continuation from the pool. 1 // TODO Currently, the first waiter becomes the leader. We should use Shuttle's nondeterministic 1 // TODO Should we add an execution id here, like Loom does? 1 // TODO: thread locals and futures don't mix well right now. each task gets its own 1 // TODO we shouldn't need to do this, but RefCell is not Send, and anything we put within a RwLock 1 // TODO Check if it's worth avoiding the call to `ExecutionState::config()` if we're going 1 // TODO is this really correct? need to think about it more 1 // TODO needs to be Send. 2 // TODO Check if we can avoid using epochs now that we have vector clocks. 1 // TODO such that levels[i].1 == true, which is the place we'll make a change 1 // TODO can we soundly skip the yield if the target thread has already finished? 1 // TODO probably should memoize this -- at each iteration, just need to know the largest i 1 // TODO support the timeout case -- this method never times out 3 // TODO actually produce spurious failures 1 // TODO actually produce spurious failures 2 // TODO add a check to ensure that if we recycled a continuation, its 1 // TODO never become unblocked), but might need to track more state to avoid this. 1 // TODO from `BarrierWaitResult::is_leader()` when returning from this function 1 // TODO: upgrade to the new scoped generator API 1 // TODO choice to generalize this so that _any_ participant could become the leader. 1 // TODO we shouldn't need to do this, but RefCell is not Send, and Barrier needs to be Send. 1 // TODO this probably won't work well with large numbers of tasks -- maybe a BitVec? 1 // TODO: need to work out all the error cases here 1 // TODO I don't think this matters, because the change points are randomized. 1 // TODO See [Issue 39](https://github.com/awslabs/shuttle/issues/39) 1 // TODO The context switch involved here might be redundant? The scheduler implicitly chose 1 // TODO around explicitly rather than being a thread local 1 // TODO would be unsound but perhaps useful for validating some code 1 // TODO We use this workaround in several places in Shuttle. Maybe there's a cleaner solution. 1