Browse Source

Move maintainence thread func take u64 rather than int

signed rollover is UB
Antonio SJ Musumeci 2 days ago
parent
commit
396f6e8109
  1. 4
      vendored/libfuse/include/maintenance_thread.hpp
  2. 6
      vendored/libfuse/lib/fuse.cpp
  3. 4
      vendored/libfuse/lib/maintenance_thread.cpp

4
vendored/libfuse/include/maintenance_thread.hpp

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "base_types.h"
#include <functional> #include <functional>
#include <vector> #include <vector>
@ -9,5 +11,5 @@ class MaintenanceThread
public: public:
static void setup(); static void setup();
static void stop(); static void stop();
static void push_job(const std::function<void(int)> &func);
static void push_job(const std::function<void(u64)> &func);
}; };

6
vendored/libfuse/lib/fuse.cpp

@ -3674,19 +3674,19 @@ fuse_gc1()
void void
fuse_populate_maintenance_thread(struct fuse *f_) fuse_populate_maintenance_thread(struct fuse *f_)
{ {
MaintenanceThread::push_job([=](int count_)
MaintenanceThread::push_job([=](u64 count_)
{ {
if(remember_nodes()) if(remember_nodes())
fuse_prune_remembered_nodes(); fuse_prune_remembered_nodes();
}); });
MaintenanceThread::push_job([](int count_)
MaintenanceThread::push_job([](u64 count_)
{ {
if((count_ % 15) == 0) if((count_ % 15) == 0)
fuse_gc1(); fuse_gc1();
}); });
MaintenanceThread::push_job([=](int count_)
MaintenanceThread::push_job([=](u64 count_)
{ {
if(fuse_cfg.debug) if(fuse_cfg.debug)
metrics_log_nodes_info_to_tmp_dir(f_); metrics_log_nodes_info_to_tmp_dir(f_);

4
vendored/libfuse/lib/maintenance_thread.cpp

@ -9,7 +9,7 @@
#include <unistd.h> #include <unistd.h>
static pthread_t g_thread; static pthread_t g_thread;
static std::vector<std::function<void(int)>> g_funcs;
static std::vector<std::function<void(u64)>> g_funcs;
static mutex_t g_mutex; static mutex_t g_mutex;
static static
@ -49,7 +49,7 @@ MaintenanceThread::setup()
} }
void void
MaintenanceThread::push_job(const std::function<void(int)> &func_)
MaintenanceThread::push_job(const std::function<void(u64)> &func_)
{ {
LockGuard lg(g_mutex); LockGuard lg(g_mutex);

Loading…
Cancel
Save