⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.23
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
local
/
src
/
libmemcached-1.0.18
/
clients
/
View File Name :
ms_thread.h
/* * File: ms_thread.h * Author: Mingqiang Zhuang * * Created on February 10, 2009 * * (c) Copyright 2009, Schooner Information Technology, Inc. * http://www.schoonerinfotech.com/ * */ /** * Asynchronous memslap has the similar implementation of * multi-threads with memcached. Asynchronous memslap creates * one or more self-governed threads; each thread is bound with * one CPU core if the system supports setting CPU core * affinity. And every thread has private variables. There is * less communication or some shared resources among all the * threads. It can improve the performance because there are * fewer locks and competition. In addition, each thread has a * libevent to manage the events of network. Each thread has one * or more self-governed concurrencies; each concurrency has one * or more socket connections. All the concurrencies don't * communicate with each other even though they are in the same * thread. */ #ifndef MS_THREAD_H #define MS_THREAD_H #include <sched.h> #include "ms_conn.h" #ifdef __cplusplus extern "C" { #endif /** Time relative to server start. Smaller than time_t on 64-bit systems. */ typedef unsigned int rel_time_t; /* Used to store the context of each thread */ typedef struct thread_ctx { uint32_t thd_idx; /* the thread index */ uint32_t nconns; /* how many connections included by the thread */ uint32_t srv_idx; /* index of the thread */ int tps_perconn; /* expected throughput per connection */ int64_t exec_num_perconn; /* execute number per connection */ } ms_thread_ctx_t; /* Used to store the private variables of each thread */ typedef struct thread { ms_conn_t *conn; /* conn array to store all the conn in the thread */ uint32_t nactive_conn; /* how many connects are active */ ms_thread_ctx_t *thread_ctx; /* thread context from the caller */ struct event_base *base; /* libevent handler created by this thread */ rel_time_t curr_time; /* current time */ struct event clock_event; /* clock event to time each one second */ bool initialized; /* whether clock_event has been initialized */ struct timeval startup_time; /* start time of the thread */ } ms_thread_t; /* initialize threads */ void ms_thread_init(void); /* cleanup some resource of threads when all the threads exit */ void ms_thread_cleanup(void); #ifdef __cplusplus } #endif #endif /* end of MS_THREAD_H */