diff options
Diffstat (limited to 'xlators/protocol/server/src/server.h')
| -rw-r--r-- | xlators/protocol/server/src/server.h | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/xlators/protocol/server/src/server.h b/xlators/protocol/server/src/server.h index 43e84921c8a..782327d775b 100644 --- a/xlators/protocol/server/src/server.h +++ b/xlators/protocol/server/src/server.h @@ -28,6 +28,34 @@  #define GF_MAX_SOCKET_WINDOW_SIZE  (1 * GF_UNIT_MB)  #define GF_MIN_SOCKET_WINDOW_SIZE  (0) +struct _gf_barrier_payload { +        rpcsvc_request_t        *req; +        struct iovec            rsp; +        call_frame_t            *frame; +        struct iovec            *payload; +        struct iobref           *iobref; +        struct iobuf            *iob; +        int                      payload_count; +        gf_boolean_t             free_iobref; +        struct list_head         list; +}; + +typedef struct _gf_barrier_payload gf_barrier_payload_t; + +struct _gf_barrier { +        gf_lock_t               lock; +        gf_boolean_t            on; +        gf_boolean_t            force; +        size_t                  cur_size; +        int64_t                 max_size; +        uint64_t                fops; +        gf_timer_t             *timer; +        uint64_t                time_out; +        struct list_head        queue; +}; + +typedef struct _gf_barrier gf_barrier_t; +  typedef enum {          INTERNAL_LOCKS = 1,          POSIX_LOCKS = 2, @@ -56,7 +84,9 @@ struct server_conf {          struct timespec         grace_ts;          dict_t                 *auth_modules;          pthread_mutex_t         mutex; +        gf_barrier_t           *barrier;          struct list_head        xprt_list; +        pthread_t               barrier_th;  };  typedef struct server_conf server_conf_t;  | 
