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. |
||
|---|---|---|
| .. | ||
| anki | ||
| rsbridge | ||
| tests | ||
| tools | ||
| .gitignore | ||
| .isort.cfg | ||
| .pylintrc | ||
| BUILD.bazel | ||
| mypy.ini | ||
| orjson.bzl | ||
| protobuf.bzl | ||
| README.md | ||
Anki's Python library code is in anki/.
The Rust/Python extension module is in rsbridge/; it references the library defined in ../rslib.