1. 16 Jan, 2022 2 commits
  2. 15 Jan, 2022 3 commits
  3. 14 Jan, 2022 1 commit
  4. 13 Jan, 2022 1 commit
  5. 12 Jan, 2022 6 commits
  6. 05 Jan, 2022 2 commits
  7. 02 Jan, 2022 5 commits
  8. 30 Dec, 2021 1 commit
  9. 29 Dec, 2021 2 commits
  10. 26 Dec, 2021 1 commit
  11. 25 Dec, 2021 6 commits
    • François Laignel's avatar
      ts/executor: relax the static bound on `enter` · 5e4fc8b1
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      The function `enter` is executed in a blocking way from the caller's
      point of view. This means that we can guaranty that the provided
      function and its output will outlive the underlying Scheduler Task
      execution. This requires an unsafe call to
      `async_task::spawn_unchecked`. See:
      
      https://docs.rs/async-task/latest/async_task/fn.spawn_unchecked.html
      5e4fc8b1
    • François Laignel's avatar
      deny.toml: don't ignore RUSTSEC-2021-0124 · 21d41ca2
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      This advisory was ignored because we couldn't use a version for
      the tokio fork that reflected that it was not vulnerable.
      
      Also remove the tokio fork as an allowed git since we now use
      our own executor for threadshare.
      21d41ca2
    • François Laignel's avatar
      ts/executor: replace tokio with smol-like implementation · 6163589a
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      The threadshare executor was based on a modified version of tokio
      which implemented the throttling strategy in the BasicScheduler.
      Upstream tokio codebase has significantly diverged from what it
      was when the throttling strategy was implemented making it hard
      to follow. This means that we can hardly get updates from the
      upstream project and when we cherry pick fixes, we can't reflect
      the state of the project on our fork's version. As a consequence,
      tools such as cargo-deny can't check for RUSTSEC fixes in our fork.
      
      The smol ecosystem makes it quite easy to implement and maintain
      a custom async executor. This MR imports the smol parts that
      need modifications to comply with the threadshare model and implements
      a throttling executor in place of the tokio fork.
      
      Networking tokio specific types are replaced with Async wrappers
      in the spirit of [smol-rs/async-io]. Note however that the Async
      wrappers needed modifications in order to use the per thread
      Reactor model. This means that higher level upstream networking
      crates such as [async-net] can not be used with our Async
      implementation.
      
      Based on the example benchmark with ts-udpsrc, performances seem on par
      with what we achieved using the tokio fork.
      
      Fixes #118
      
      Related to !604
      6163589a
    • François Laignel's avatar
      ts/runtime: shuffle some structs to dedicated modules · db9c38aa
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      db9c38aa
    • François Laignel's avatar
      ts/runtime: use a directory for executor module · c5ef83d5
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      This will ease the introduction of other concepts which are required
      for our own executor implementation.
      c5ef83d5
    • François Laignel's avatar
      ts: migrate most tests so that they don't use tokio · cd077366
      François Laignel authored and Sebastian Dröge's avatar Sebastian Dröge committed
      cd077366
  12. 22 Dec, 2021 4 commits
  13. 20 Dec, 2021 3 commits
  14. 18 Dec, 2021 1 commit
  15. 15 Dec, 2021 1 commit
  16. 14 Dec, 2021 1 commit