Rust rayon crate par_iter().map() "stalls" 保存图像时
Rust rayon crate par_iter().map() "stalls" when saving images
我正在尝试通过此链接的 rust-cookbook 示例中 data-parallelism 上的示例学习 Rust。
但是,当我 运行 代码(我认为是正确的依赖项)时,并行迭代器函数没有完成。 This is the exact repo我很挣扎。
当我 运行 cargo run
在包含 5 个图像的项目的根目录时,我在控制台中得到以下内容。
Current number threads: 4
Saving 5 thumbnails into 'thumbnails'...
但是,创建了 none 个缩略图,并且程序永远不会退出。代码编译。
我在另一个 little CLI 中遇到了同样的问题。我正在努力学习 Rust,但我认为食谱中的示例更容易使用。
任何提示,即使是我可能会寻找的提示,也将不胜感激。请问是不是机器相关
这是 image
crate 的 JPEG 解码器中的一个已知死锁错误:GitHub issue
JPEG 解码本身默认在内部使用人造丝,当您自己使用人造丝一次解码多个 JPEG 时,会触发此错误。作为一种解决方法,您可以通过在 Cargo.toml
中指定 image
crate 依赖项来阻止 JPEG 解码器使用 rayon,如下所示:
image = { version = "0.24.1", default-features = false, features = ["jpeg"] }
这会禁用 image
crate 的默认功能,其中之一是 jpeg_rayon
。
我正在尝试通过此链接的 rust-cookbook 示例中 data-parallelism 上的示例学习 Rust。
但是,当我 运行 代码(我认为是正确的依赖项)时,并行迭代器函数没有完成。 This is the exact repo我很挣扎。
当我 运行 cargo run
在包含 5 个图像的项目的根目录时,我在控制台中得到以下内容。
Current number threads: 4
Saving 5 thumbnails into 'thumbnails'...
但是,创建了 none 个缩略图,并且程序永远不会退出。代码编译。
我在另一个 little CLI 中遇到了同样的问题。我正在努力学习 Rust,但我认为食谱中的示例更容易使用。
任何提示,即使是我可能会寻找的提示,也将不胜感激。请问是不是机器相关
这是 image
crate 的 JPEG 解码器中的一个已知死锁错误:GitHub issue
JPEG 解码本身默认在内部使用人造丝,当您自己使用人造丝一次解码多个 JPEG 时,会触发此错误。作为一种解决方法,您可以通过在 Cargo.toml
中指定 image
crate 依赖项来阻止 JPEG 解码器使用 rayon,如下所示:
image = { version = "0.24.1", default-features = false, features = ["jpeg"] }
这会禁用 image
crate 的默认功能,其中之一是 jpeg_rayon
。