2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
26 /** Time relative to server start. Smaller than time_t on 64-bit systems. */
27 typedef unsigned int rel_time_t
;
29 /* Used to store the context of each thread */
30 typedef struct thread_ctx
{
31 uint32_t thd_idx
; /* the thread index */
32 uint32_t nconns
; /* how many connections included by the thread */
33 uint32_t srv_idx
; /* index of the thread */
34 int tps_perconn
; /* expected throughput per connection */
35 int64_t exec_num_perconn
; /* execute number per connection */
39 /* Used to store the private variables of each thread */
40 typedef struct thread
{
41 ms_conn_t
*conn
; /* conn array to store all the conn in the thread */
42 uint32_t nactive_conn
; /* how many connects are active */
44 ms_thread_ctx_t
*thread_ctx
; /* thread context from the caller */
45 struct event_base
*base
; /* libevent handler created by this thread */
47 rel_time_t curr_time
; /* current time */
48 struct event clock_event
; /* clock event to time each one second */
49 bool initialized
; /* whether clock_event has been initialized */
51 struct timeval startup_time
; /* start time of the thread */
54 /* initialize threads */
55 void ms_thread_init(void);
57 /* cleanup some resource of threads when all the threads exit */
58 void ms_thread_cleanup(void);
64 #endif /* end of MS_THREAD_H */