diff options
| author | root <[email protected]> | 2024-06-04 07:29:04 +0000 |
|---|---|---|
| committer | root <[email protected]> | 2024-06-04 07:30:44 +0000 |
| commit | ddd6873dab598216449de3aec2bf55c40cb6b619 (patch) | |
| tree | ee7fb72dcea6fc7bcc3d02f902922963d6fcae3c /shaping/src/shaper_session.cpp | |
| parent | dbb0f42537aee97e8f393f9f8a84856fb8aec5af (diff) | |
每个session的缓存队列分为in和out两个方向队列
Diffstat (limited to 'shaping/src/shaper_session.cpp')
| -rw-r--r-- | shaping/src/shaper_session.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/shaping/src/shaper_session.cpp b/shaping/src/shaper_session.cpp index 494950b..f58d55f 100644 --- a/shaping/src/shaper_session.cpp +++ b/shaping/src/shaper_session.cpp @@ -195,7 +195,7 @@ struct shaping_flow* shaper_session_close(struct shaping_thread_ctx *ctx, struct sf = (struct shaping_flow *)session_node->val_data; - if (shaper_queue_empty(sf)) { + if (shaper_queue_empty(sf, SHAPING_DIR_IN) && shaper_queue_empty(sf, SHAPING_DIR_OUT)) { shaping_flow_free(ctx, sf); } else { sf->flag |= SESSION_CLOSE; @@ -245,7 +245,8 @@ void shaper_session_data_free_cb(void *session_data, void *data) struct shaping_thread_ctx *ctx = (struct shaping_thread_ctx *)data; if (sf) { - shaper_queue_clear(sf, ctx); + shaper_queue_clear(sf, ctx, SHAPING_DIR_IN); + shaper_queue_clear(sf, ctx, SHAPING_DIR_OUT); shaping_flow_free(ctx, sf); } |
