1. 26 Oct, 2021 1 commit
    • eta's avatar
      Overhaul the way WaitFor and the MockSleepProvider work · 099dba3a
      eta authored
      Instead of racily advancing time forward, this commit attempts to rework
      how WaitFor works, such that it makes advances when all sleeper futures
      that have been created have been polled (by handing the MockSleepRuntime
      a Waker with which to wake up the WaitFor).
      
      The above described mechanics work well enough for the double timeout
      test, but fail in the presence of code that spawns asynchronous /
      background tasks that must make progress before time is advanced for the
      test to work properly. In order to deal with these cases, a set of APIs
      are introduced in order to block time from being advanced until some
      code has run, and a carveout added in order to permit small advances in
      time where required.
      
      (In some cases, code needed to be hacked up a bit in order to be made
      properly testable using these APIs; the `MockablePlan` trait included in
      here is somewhat unfortunate.)
      
      This should fix arti#149.
      099dba3a
  2. 20 Oct, 2021 1 commit
  3. 19 Oct, 2021 16 commits
  4. 18 Oct, 2021 15 commits
  5. 17 Oct, 2021 5 commits
  6. 15 Oct, 2021 2 commits