mirror of
https://github.com/cesanta/mongoose.git
synced 2024-11-27 20:59:00 +08:00
Using volatile keyword in the context struct to prevent unwanted optimization. See http://code.google.com/p/mongoose/issues/detail?id=216
This commit is contained in:
parent
08bf149d85
commit
3583e83a3f
@ -422,7 +422,7 @@ static const char *config_options[] = {
|
||||
#define ENTRIES_PER_CONFIG_OPTION 3
|
||||
|
||||
struct mg_context {
|
||||
int stop_flag; // Should we stop event loop
|
||||
volatile int stop_flag; // Should we stop event loop
|
||||
SSL_CTX *ssl_ctx; // SSL context
|
||||
char *config[NUM_OPTIONS]; // Mongoose configuration parameters
|
||||
mg_callback_t user_callback; // User-defined callback function
|
||||
@ -430,13 +430,13 @@ struct mg_context {
|
||||
|
||||
struct socket *listening_sockets;
|
||||
|
||||
int num_threads; // Number of threads
|
||||
volatile int num_threads; // Number of threads
|
||||
pthread_mutex_t mutex; // Protects (max|num)_threads
|
||||
pthread_cond_t cond; // Condvar for tracking workers terminations
|
||||
|
||||
struct socket queue[20]; // Accepted sockets
|
||||
int sq_head; // Head of the socket queue
|
||||
int sq_tail; // Tail of the socket queue
|
||||
volatile int sq_head; // Head of the socket queue
|
||||
volatile int sq_tail; // Tail of the socket queue
|
||||
pthread_cond_t sq_full; // Singaled when socket is produced
|
||||
pthread_cond_t sq_empty; // Signaled when socket is consumed
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user