From ae013cf597db1c523c9fac21b7e83db62304ae2d Mon Sep 17 00:00:00 2001
From: zhaomingwork <61895407+zhaomingwork@users.noreply.github.com>
Date: 星期四, 08 五月 2025 23:52:09 +0800
Subject: [PATCH] fix bug for core dump in http, use libboost as parse (#2509)
---
runtime/http/bin/asr_sessions.h | 36 +++++++++++++++++++++++++++++++++++-
1 files changed, 35 insertions(+), 1 deletions(-)
diff --git a/runtime/http/bin/asr_sessions.h b/runtime/http/bin/asr_sessions.h
index 0e1c54d..cbbf9c1 100644
--- a/runtime/http/bin/asr_sessions.h
+++ b/runtime/http/bin/asr_sessions.h
@@ -2,13 +2,41 @@
* Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights
* Reserved. MIT License (https://opensource.org/licenses/MIT)
*/
-/* 2023-2024 by zhaomingwork@qq.com */
+/* 2023-2025 by zhaomingwork@qq.com */
// FUNASR_MESSAGE define the needed message between funasr engine and http server
#ifndef HTTP_SERVER2_SESSIONS_HPP
#define HTTP_SERVER2_SESSIONS_HPP
#include "funasrruntime.h"
#include "nlohmann/json.hpp"
+#include <iostream>
+#include <thread>
#include <atomic>
+#include <mutex>
+#include <condition_variable>
+
+class Semaphore {
+public:
+ explicit Semaphore(int count = 0) : count_(count) {}
+
+
+ void acquire() {
+ std::unique_lock<std::mutex> lock(mutex_);
+ cv_.wait(lock, [this]() { return count_ > 0; });
+ --count_;
+ }
+
+
+ void release() {
+ std::lock_guard<std::mutex> lock(mutex_);
+ ++count_;
+ cv_.notify_one();
+ }
+
+private:
+ int count_;
+ std::mutex mutex_;
+ std::condition_variable cv_;
+};
typedef struct {
nlohmann::json msg;
std::shared_ptr<std::vector<char>> samples;
@@ -16,5 +44,11 @@
FUNASR_DEC_HANDLE decoder_handle=nullptr;
std::atomic<int> status;
+ //std::counting_semaphore<3> sem(0);
+ Semaphore sem_resultok;
} FUNASR_MESSAGE;
+
+
+
+
#endif // HTTP_SERVER2_REQUEST_PARSER_HPP
\ No newline at end of file
--
Gitblit v1.9.1