mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 12:47:11 -05:00
Rust requires all methods of impl Trait to be in a single file, which means we had a giant backend/mod.rs covering all exposed methods. By using separate service definitions for the separate areas, and updating the code generation, we can split it into more manageable chunks - this commit starts with the scheduling code. In the long run, we'll probably want to split up the protobuf file into multiple files as well. Also dropped want_release_gil() from rsbridge, and the associated method enum. While it allows us to skip the thread save/restore and mutex unlock/ lock, it looks to only be buying about 2.5% extra performance in the best case (tested with timeit+format_timespan), and the majority of the backend methods deal with I/O, and thus were already releasing the GIL. |
||
|---|---|---|
| .. | ||
| cargo | ||
| .gitignore | ||
| BUILD.bazel | ||
| build.rs | ||
| Cargo.toml | ||
| lib.rs | ||