From: Daniel Bevenius Date: Thu, 30 Jan 2025 10:05:00 +0000 (+0100) Subject: server : use lambda instead of std::bind (#11507) X-Git-Tag: upstream/0.0.4631~38 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=4314e56c4f8c5091f45732f39bd94c0c6c323798;p=pkg%2Fggml%2Fsources%2Fllama.cpp server : use lambda instead of std::bind (#11507) This commit replaces the two usages of `std::bind` in favor of lambdas for the callback functions for `callback_new_task` and `callback_update_slots`. The motivation for this changes is consistency with the rest of the code in server.cpp (lambdas are used for all other callbacks/handlers). Also lambdas are more readable (perhaps this is subjective) but also they are recommended over `std::bind` in modern C++. Ref: https://github.com/LithoCoders/dailycpp/blob/master/EffectiveModernC%2B%2B/chapter6/Item34_Prefer_lambdas_to_std::bind.md --- diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 6e28d283..b9aa5c81 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -4387,11 +4387,13 @@ int main(int argc, char ** argv) { ctx_server.chat_templates.template_default->source().c_str(), common_chat_format_example(*ctx_server.chat_templates.template_default, ctx_server.params_base.use_jinja).c_str()); - ctx_server.queue_tasks.on_new_task(std::bind( - &server_context::process_single_task, &ctx_server, std::placeholders::_1)); + ctx_server.queue_tasks.on_new_task([&ctx_server](const server_task & task) { + ctx_server.process_single_task(task); + }); - ctx_server.queue_tasks.on_update_slots(std::bind( - &server_context::update_slots, &ctx_server)); + ctx_server.queue_tasks.on_update_slots([&ctx_server]() { + ctx_server.update_slots(); + }); shutdown_handler = [&](int) { ctx_server.queue_tasks.terminate();