From: Adrien Gallouët Date: Tue, 28 Apr 2026 07:02:32 +0000 (+0200) Subject: ggml : skip already registered backends and devices (#22296) X-Git-Tag: upstream/0.0.10438~1480 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=50494a28003d15bb0b9a7a848fd5b6b713f39835;p=pkg%2Fggml%2Fsources%2Fllama.cpp ggml : skip already registered backends and devices (#22296) Signed-off-by: Adrien Gallouët --- diff --git a/ggml/src/ggml-backend-reg.cpp b/ggml/src/ggml-backend-reg.cpp index 058710921..8165ae2c8 100644 --- a/ggml/src/ggml-backend-reg.cpp +++ b/ggml/src/ggml-backend-reg.cpp @@ -181,6 +181,12 @@ struct ggml_backend_registry { return; } + for (auto & entry : backends) { + if (entry.reg == reg) { + return; + } + } + #ifndef NDEBUG GGML_LOG_DEBUG("%s: registered backend %s (%zu devices)\n", __func__, ggml_backend_reg_name(reg), ggml_backend_reg_dev_count(reg)); @@ -192,6 +198,12 @@ struct ggml_backend_registry { } void register_device(ggml_backend_dev_t device) { + for (auto & dev : devices) { + if (dev == device) { + return; + } + } + #ifndef NDEBUG GGML_LOG_DEBUG("%s: registered device %s (%s)\n", __func__, ggml_backend_dev_name(device), ggml_backend_dev_description(device)); #endif