summaryrefslogtreecommitdiff
path: root/shaping/src/shaper_session.cpp
diff options
context:
space:
mode:
authorroot <[email protected]>2024-06-04 07:29:04 +0000
committerroot <[email protected]>2024-06-04 07:30:44 +0000
commitddd6873dab598216449de3aec2bf55c40cb6b619 (patch)
treeee7fb72dcea6fc7bcc3d02f902922963d6fcae3c /shaping/src/shaper_session.cpp
parentdbb0f42537aee97e8f393f9f8a84856fb8aec5af (diff)
每个session的缓存队列分为in和out两个方向队列
Diffstat (limited to 'shaping/src/shaper_session.cpp')
-rw-r--r--shaping/src/shaper_session.cpp5
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);
}