commit:     2a58c7f5880e48a12ada19a8ad1a6add0804b637
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 27 11:18:55 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov 27 11:18:55 2025 +0000
URL:        https://gitweb.gentoo.org/proj/steve.git/commit/?id=2a58c7f5

Move job token giving code to common function

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 steve.cxx | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/steve.cxx b/steve.cxx
index 52ff9e6..ff7bdf2 100644
--- a/steve.cxx
+++ b/steve.cxx
@@ -80,17 +80,21 @@ struct steve_state {
        struct fuse_buf buf{};
 };
 
+static void steve_give_token(steve_state *state, fuse_req_t req, uint64_t pid)
+{
+       state->tokens--;
+       state->processes[pid].tokens_held++;
+       if (state->verbose)
+               std::print(stderr, "Giving job token to PID {}, {} left, {} 
tokens held by process\n",
+                               pid, state->tokens, 
state->processes[pid].tokens_held);
+       fuse_reply_buf(req, "+", 1);
+}
+
 static void steve_wake_waiters(steve_state *state)
 {
        while (state->tokens > 0 && !state->read_waiters.empty()) {
                const steve_read_waiter *read_waiter = 
&state->read_waiters.front();
-
-               state->tokens--;
-               state->processes[read_waiter->pid].tokens_held++;
-               if (state->verbose)
-                       std::print(stderr, "Giving job token to PID {}, {} 
left, {} tokens held by process\n",
-                                       read_waiter->pid, state->tokens, 
state->processes[read_waiter->pid].tokens_held);
-               fuse_reply_buf(read_waiter->req, "+", 1);
+               steve_give_token(state, read_waiter->req, read_waiter->pid);
                state->read_waiters.pop_front();
        }
 
@@ -231,12 +235,7 @@ static void steve_read(
 
        /* no need to support reading more than one token at a time */
        if (state->tokens > 0) {
-               state->tokens--;
-               state->processes[fi->fh].tokens_held++;
-               if (state->verbose)
-                       std::print(stderr, "Giving job token to PID {}, {} 
left, {} tokens held by process\n",
-                                       fi->fh, state->tokens, 
state->processes[fi->fh].tokens_held);
-               fuse_reply_buf(req, "+", 1);
+               steve_give_token(state, req, fi->fh);
                return;
        }
 

Reply via email to