-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
change: Rust APIの脱Tokioと、voicevox_core::
{tokio
→nonblocking
}
#831
Conversation
tokio
→:nonblocking
にtokio
→nonblocking
に
tokio
→nonblocking
にtokio
→ nonblocking
に
tokio
→ nonblocking
にvoicevox_core::tokio
→ 〃::nonblocking
voicevox_core::tokio
→ 〃::nonblocking
voicevox_core::
{tokio
→nonblocking
}
なぜtokioを脱したいのかのwhyをこのプルリクエストに関連付けておくと、後から見返すときとか後から入ってきた方に優しいかもと思いました! tokioではなくnonblockingだとランタイムが不要で、wasmなどの特殊な環境でもブロッキングできるようになるから、とかでしたっけ。 どこかで理由のコメントがあったと思いますが、そこの URL とかで良さそう! |
//! これらは[blocking]クレートにより動いている。特定の非同期ランタイムを必要とせず、[pollster]など | ||
//! でも動かすことができる。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
・・・・・・・あれ、これどういうことでしたっけ。。。
blokingモジュール(クレート)があって、これはAsyncを実装してくれてる感じ・・・?
(プレーンなRustのasyncは非同期の機能がなく、非同期用のクレートを使わないと非同期にできない、という理解でいます)
blocking、名前めちゃくちゃややこしいですね・・・。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
そうですね。こんな感じです。
- blocking: 外部ライブラリ名。VOICEVOX COREのパブリックAPIとしてはドキュメントのみ登場
voicevox_core::blocking
: パブリックAPIの一部voicevox_core::nonblocking
: パブリックAPIの一部。内部でblocking(外部ライブラリ名)を使っている
blocking、名前めちゃくちゃややこしいですね・・・。
ですね。
前身としてunblockという、unblock::unblock(…)
という形で使えるクレートがあって更新が途絶えているのですが、よく見たらこれblockingより前に誕生したものですね。なんでこの名前にしなかったんだろう…
2回くらい言ったかもしれませんが、せめてリポジトリ名(smol-rs/blocking)がblocking-rsとかだったらそっちで呼べるのに…
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!
コード的には問題なしなので、任意のタイミングでマージしていただければ!!
一部質問コメントだけしました!
コードのドキュメントとしては脱Tokioのメリットを書きましたが、GitHubではどこにも書いてませんでしたね。ちょうど今 VOICEVOX/voicevox_project#56 で話している「PRの結論」を、why込みで書いてみました。
WASMのためではないですね。WASMだとスレッドプールすら使えないので、 #830 では |
#831 で残した次のTODOのうち、`Synthesizer`についてだけ解決する。 ````rs // TODO: `VoiceModelFile`のように、次のような設計にする。 // // ``` // pub(crate) mod blocking { // pub struct Synthesizer(Inner<SingleTasked>); // // … // } // pub(crate) mod nonblocking { // pub struct Synthesizer(Inner<BlockingThreadPool>); // // … // } // ``` ```` 目的としては、 #687 のようなことを行うのを円滑にするため。 もしかしたらパフォーマンスには影響が出ているかもしれないが、そこまで大き なものではないはず。 Refs: #831, #687
内容
題名の通りです。
#830 (comment)についてはTODOとして残し、脱TokioとパブリックAPIのリネームに絞っています。
関連 Issue
ref #388
その他