On x86_64, this shrinks the size of the struct from 40 to 32 bytes.
Before the patch, pahole states that:
struct h2_session_props {
int accepted_max; /* 0 4 */
int completed_max; /* 4 4 */
int emitted_count; /* 8 4 */
int emitted_max; /* 12 4 */
int error; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
const char * error_msg; /* 24 8 */
unsigned int accepting:1; /* 32: 0 4 */
unsigned int shutdown:1; /* 32: 1 4 */
/* size: 40, cachelines: 1, members: 8 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* sum bitfield members: 2 bits (0 bytes) */
/* padding: 4 */
/* bit_padding: 30 bits */
/* last cacheline: 40 bytes */
};
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@
1907756 13f79535-47bb-0310-9956-
ffa450edef68
int completed_max; /* the highest remote stream completed */
int emitted_count; /* the number of local streams sent */
int emitted_max; /* the highest local stream id sent */
- int error; /* the last session error encountered */
- const char *error_msg; /* the short message given on the error */
unsigned int accepting : 1; /* if the session is accepting new streams */
unsigned int shutdown : 1; /* if the final GOAWAY has been sent */
+ int error; /* the last session error encountered */
+ const char *error_msg; /* the short message given on the error */
} h2_session_props;
typedef enum h2_stream_state_t {