提交 21f56350 authored 作者: Shane Bryldt's avatar Shane Bryldt

FS-10167: Small fix, made state volatile in session and connection to prevent…

FS-10167: Small fix, made state volatile in session and connection to prevent odd behaviour by the GCC compiler under linux
上级 2c996b59
...@@ -42,7 +42,7 @@ struct blade_connection_s { ...@@ -42,7 +42,7 @@ struct blade_connection_s {
blade_connection_direction_t direction; blade_connection_direction_t direction;
ks_thread_t *state_thread; ks_thread_t *state_thread;
blade_connection_state_t state; volatile blade_connection_state_t state;
const char *id; const char *id;
ks_rwl_t *lock; ks_rwl_t *lock;
......
...@@ -1012,7 +1012,7 @@ blade_connection_state_hook_t blade_transport_wss_on_state_attach_inbound(blade_ ...@@ -1012,7 +1012,7 @@ blade_connection_state_hook_t blade_transport_wss_on_state_attach_inbound(blade_
if (json_req) cJSON_Delete(json_req); if (json_req) cJSON_Delete(json_req);
if (json_res) cJSON_Delete(json_res); if (json_res) cJSON_Delete(json_res);
return ret; return ret;
} }
......
...@@ -37,7 +37,7 @@ struct blade_session_s { ...@@ -37,7 +37,7 @@ struct blade_session_s {
blade_handle_t *handle; blade_handle_t *handle;
ks_pool_t *pool; ks_pool_t *pool;
blade_session_state_t state; volatile blade_session_state_t state;
const char *id; const char *id;
ks_rwl_t *lock; ks_rwl_t *lock;
...@@ -180,7 +180,7 @@ KS_DECLARE(ks_status_t) blade_session_startup(blade_session_t *bs) ...@@ -180,7 +180,7 @@ KS_DECLARE(ks_status_t) blade_session_startup(blade_session_t *bs)
ks_assert(tpool); ks_assert(tpool);
blade_session_state_set(bs, BLADE_SESSION_STATE_NONE); blade_session_state_set(bs, BLADE_SESSION_STATE_NONE);
if (ks_thread_pool_add_job(tpool, blade_session_state_thread, bs) != KS_STATUS_SUCCESS) { if (ks_thread_pool_add_job(tpool, blade_session_state_thread, bs) != KS_STATUS_SUCCESS) {
// @todo error logging // @todo error logging
return KS_STATUS_FAIL; return KS_STATUS_FAIL;
...@@ -470,7 +470,7 @@ void *blade_session_state_thread(ks_thread_t *thread, void *data) ...@@ -470,7 +470,7 @@ void *blade_session_state_thread(ks_thread_t *thread, void *data)
ks_assert(data); ks_assert(data);
bs = (blade_session_t *)data; bs = (blade_session_t *)data;
ks_mutex_lock(bs->mutex); ks_mutex_lock(bs->mutex);
while (!shutdown) { while (!shutdown) {
...@@ -490,7 +490,7 @@ void *blade_session_state_thread(ks_thread_t *thread, void *data) ...@@ -490,7 +490,7 @@ void *blade_session_state_thread(ks_thread_t *thread, void *data)
cJSON_Delete(json); cJSON_Delete(json);
} }
} }
blade_handle_session_state_callbacks_execute(bs, BLADE_SESSION_STATE_CONDITION_POST); blade_handle_session_state_callbacks_execute(bs, BLADE_SESSION_STATE_CONDITION_POST);
switch (state) { switch (state) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论