Skip to content

Commit 49b0e3c

Browse files
authored
server : fix cleaning up stream task (#11418)
* server : fix cleaning up stream task * one more spot
1 parent 20a7581 commit 49b0e3c

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

examples/server/server.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,16 +1427,16 @@ struct server_queue {
14271427
int post(server_task task, bool front = false) {
14281428
std::unique_lock<std::mutex> lock(mutex_tasks);
14291429
GGML_ASSERT(task.id != -1);
1430+
// if this is cancel task make sure to clean up pending tasks
1431+
if (task.type == SERVER_TASK_TYPE_CANCEL) {
1432+
cleanup_pending_task(task.id_target);
1433+
}
14301434
QUE_DBG("new task, id = %d, front = %d\n", task.id, front);
14311435
if (front) {
14321436
queue_tasks.push_front(std::move(task));
14331437
} else {
14341438
queue_tasks.push_back(std::move(task));
14351439
}
1436-
// if this is cancel task make sure to clean up pending tasks
1437-
if (task.type == SERVER_TASK_TYPE_CANCEL) {
1438-
cleanup_pending_task(task.id_target);
1439-
}
14401440
condition_tasks.notify_one();
14411441
return task.id;
14421442
}
@@ -1448,16 +1448,16 @@ struct server_queue {
14481448
if (task.id == -1) {
14491449
task.id = id++;
14501450
}
1451+
// if this is cancel task make sure to clean up pending tasks
1452+
if (task.type == SERVER_TASK_TYPE_CANCEL) {
1453+
cleanup_pending_task(task.id_target);
1454+
}
14511455
QUE_DBG("new task, id = %d/%d, front = %d\n", task.id, (int) tasks.size(), front);
14521456
if (front) {
14531457
queue_tasks.push_front(std::move(task));
14541458
} else {
14551459
queue_tasks.push_back(std::move(task));
14561460
}
1457-
// if this is cancel task make sure to clean up pending tasks
1458-
if (task.type == SERVER_TASK_TYPE_CANCEL) {
1459-
cleanup_pending_task(task.id_target);
1460-
}
14611461
}
14621462
condition_tasks.notify_one();
14631463
return 0;
@@ -1554,10 +1554,10 @@ struct server_queue {
15541554
}
15551555

15561556
private:
1557-
void cleanup_pending_task(int id_task) {
1557+
void cleanup_pending_task(int id_target) {
15581558
// no need lock because this is called exclusively by post()
1559-
auto rm_func = [id_task](const server_task & task) {
1560-
return task.id_target == id_task;
1559+
auto rm_func = [id_target](const server_task & task) {
1560+
return task.id_target == id_target;
15611561
};
15621562
queue_tasks.erase(
15631563
std::remove_if(queue_tasks.begin(), queue_tasks.end(), rm_func),

0 commit comments

Comments
 (0)