@@ -164,7 +164,7 @@ static int connSocketWrite(connection *conn, const void *data, size_t data_len)
164
164
int ret = write (conn->fd , data, data_len);
165
165
if (ret < 0 && errno != EAGAIN) {
166
166
conn->last_errno = errno;
167
- conn->state = CONN_STATE_ERROR;
167
+ conn->state . store ( CONN_STATE_ERROR, std::memory_order_relaxed) ;
168
168
}
169
169
170
170
return ret;
@@ -173,10 +173,10 @@ static int connSocketWrite(connection *conn, const void *data, size_t data_len)
173
173
static int connSocketRead (connection *conn, void *buf, size_t buf_len) {
174
174
int ret = read (conn->fd , buf, buf_len);
175
175
if (!ret) {
176
- conn->state = CONN_STATE_CLOSED;
176
+ conn->state . store ( CONN_STATE_CLOSED, std::memory_order_release) ;
177
177
} else if (ret < 0 && errno != EAGAIN) {
178
178
conn->last_errno = errno;
179
- conn->state = CONN_STATE_ERROR;
179
+ conn->state . store ( CONN_STATE_ERROR, std::memory_order_release) ;
180
180
}
181
181
182
182
return ret;
@@ -253,14 +253,14 @@ static void connSocketEventHandler(struct aeEventLoop *el, int fd, void *clientD
253
253
UNUSED (fd);
254
254
connection *conn = (connection*)clientData;
255
255
256
- if (conn->state == CONN_STATE_CONNECTING &&
256
+ if (conn->state . load (std::memory_order_relaxed) == CONN_STATE_CONNECTING &&
257
257
(mask & AE_WRITABLE) && conn->conn_handler ) {
258
258
259
259
if (connGetSocketError (conn)) {
260
260
conn->last_errno = errno;
261
- conn->state = CONN_STATE_ERROR;
261
+ conn->state . store ( CONN_STATE_ERROR, std::memory_order_release) ;
262
262
} else {
263
- conn->state = CONN_STATE_CONNECTED;
263
+ conn->state . store ( CONN_STATE_CONNECTED, std::memory_order_release) ;
264
264
}
265
265
266
266
if (!conn->write_handler ) aeDeleteFileEvent (serverTL->el ,conn->fd ,AE_WRITABLE);
@@ -407,7 +407,7 @@ int connRecvTimeout(connection *conn, long long ms) {
407
407
}
408
408
409
409
int connGetState (connection *conn) {
410
- return conn->state ;
410
+ return conn->state . load (std::memory_order_relaxed) ;
411
411
}
412
412
413
413
void connSetThreadAffinity (connection *conn, int cpu) {
0 commit comments