Skip to content

Commit

Permalink
refactor: Synthesizerの実装をInner<_, A: Async>の形にする (#865)
Browse files Browse the repository at this point in the history
#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
  • Loading branch information
qryxip authored Nov 2, 2024
1 parent e094b52 commit a8131d9
Show file tree
Hide file tree
Showing 5 changed files with 716 additions and 413 deletions.
8 changes: 4 additions & 4 deletions crates/voicevox_core/src/status.rs
Original file line number Diff line number Diff line change
Expand Up @@ -415,8 +415,8 @@ mod tests {
},
);
let model = &crate::nonblocking::VoiceModelFile::sample().await.unwrap();
let model_contents = &model.read_inference_models().await.unwrap();
let result = status.insert_model(model.header(), model_contents);
let model_contents = &model.inner().read_inference_models().await.unwrap();
let result = status.insert_model(model.inner().header(), model_contents);
assert_debug_fmt_eq!(Ok(()), result);
assert_eq!(1, status.loaded_models.lock().unwrap().0.len());
}
Expand All @@ -431,8 +431,8 @@ mod tests {
},
);
let vvm = &crate::nonblocking::VoiceModelFile::sample().await.unwrap();
let model_header = vvm.header();
let model_contents = &vvm.read_inference_models().await.unwrap();
let model_header = vvm.inner().header();
let model_contents = &vvm.inner().read_inference_models().await.unwrap();
assert!(
!status.is_loaded_model(model_header.manifest.id),
"model should not be loaded"
Expand Down
Loading

0 comments on commit a8131d9

Please sign in to comment.