From f1ca2a830e91440ea208ed8a145103503fe703f9 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Tue, 8 Jul 2025 09:52:14 +0200 Subject: [PATCH] Do not use a global for the request's unique id It wil break things when having more than one request pending --- .luacheckrc | 3 --- src/nats.lua | 9 +++++---- 2 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 .luacheckrc diff --git a/.luacheckrc b/.luacheckrc deleted file mode 100644 index 074308f..0000000 --- a/.luacheckrc +++ /dev/null @@ -1,3 +0,0 @@ -globals = { - "unique_id" -} diff --git a/src/nats.lua b/src/nats.lua index a05e5f9..ccc3385 100644 --- a/src/nats.lua +++ b/src/nats.lua @@ -389,16 +389,17 @@ end function command.request(client, subject, payload, callback) local inbox = create_inbox() - unique_id = client:subscribe(inbox, function(message, reply) + local unique_id = uuid() + client:subscribe(inbox, function(message, reply) client:unsubscribe(unique_id) callback(message, reply) - end) + end, unique_id) client:publish(subject, payload, inbox) return unique_id, inbox end -function command.subscribe(client, subject, callback) - local unique_id = uuid() +function command.subscribe(client, subject, callback, unique_id) + unique_id = unique_id or uuid() request.raw(client, 'SUB '..subject..' '..unique_id..'\r\n') client.subscriptions[unique_id] = callback