Skip to content

Commit 5c34f0f

Browse files
committed
编译报错
1 parent dc62efb commit 5c34f0f

File tree

1 file changed

+39
-39
lines changed

1 file changed

+39
-39
lines changed

unreal/Puerts/Source/JsEnv/Private/WebSocketImpl.cpp

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -52,44 +52,6 @@ PRAGMA_ENABLE_UNDEFINED_IDENTIFIER_WARNINGS
5252
namespace PUERTS_NAMESPACE
5353
{
5454

55-
class V8WebSocketClientImpl;
56-
57-
namespace
58-
{
59-
std::mutex GWSDeleteMutex;
60-
std::condition_variable GWSDeleteCV;
61-
std::queue<V8WebSocketClientImpl*> GWSDeleteQueue;
62-
std::once_flag GWSDeleteThreadOnce;
63-
64-
void WebSocketDeleteThreadFunc()
65-
{
66-
for (;;)
67-
{
68-
V8WebSocketClientImpl* client = nullptr;
69-
{
70-
std::unique_lock<std::mutex> lock(GWSDeleteMutex);
71-
GWSDeleteCV.wait(lock, [] { return !GWSDeleteQueue.empty(); });
72-
73-
client = GWSDeleteQueue.front();
74-
GWSDeleteQueue.pop();
75-
}
76-
77-
delete client;
78-
}
79-
}
80-
81-
void EnqueueWebSocketForDelete(V8WebSocketClientImpl* client)
82-
{
83-
std::call_once(GWSDeleteThreadOnce, [] { std::thread(WebSocketDeleteThreadFunc).detach(); });
84-
85-
{
86-
std::lock_guard<std::mutex> lock(GWSDeleteMutex);
87-
GWSDeleteQueue.push(client);
88-
}
89-
GWSDeleteCV.notify_one();
90-
}
91-
} // anonymous namespace
92-
9355
#if !defined(USING_IN_UNREAL_ENGINE)
9456
class DataTransfer
9557
{
@@ -169,6 +131,8 @@ class V8WebSocketClientImpl
169131

170132
void Cleanup();
171133

134+
static void OnGarbageCollectedWithFree(const v8::WeakCallbackInfo<V8WebSocketClientImpl>& Data);
135+
172136
private:
173137
v8::Isolate* Isolate;
174138

@@ -185,7 +149,43 @@ class V8WebSocketClientImpl
185149
v8::Global<v8::Function> Handles[HANDLE_TYPE_END];
186150
};
187151

188-
static void OnGarbageCollectedWithFree(const v8::WeakCallbackInfo<V8WebSocketClientImpl>& Data)
152+
namespace
153+
{
154+
std::mutex GWSDeleteMutex;
155+
std::condition_variable GWSDeleteCV;
156+
std::queue<V8WebSocketClientImpl*> GWSDeleteQueue;
157+
std::once_flag GWSDeleteThreadOnce;
158+
159+
void WebSocketDeleteThreadFunc()
160+
{
161+
for (;;)
162+
{
163+
V8WebSocketClientImpl* client = nullptr;
164+
{
165+
std::unique_lock<std::mutex> lock(GWSDeleteMutex);
166+
GWSDeleteCV.wait(lock, [] { return !GWSDeleteQueue.empty(); });
167+
168+
client = GWSDeleteQueue.front();
169+
GWSDeleteQueue.pop();
170+
}
171+
172+
delete client;
173+
}
174+
}
175+
176+
void EnqueueWebSocketForDelete(V8WebSocketClientImpl* client)
177+
{
178+
std::call_once(GWSDeleteThreadOnce, [] { std::thread(WebSocketDeleteThreadFunc).detach(); });
179+
180+
{
181+
std::lock_guard<std::mutex> lock(GWSDeleteMutex);
182+
GWSDeleteQueue.push(client);
183+
}
184+
GWSDeleteCV.notify_one();
185+
}
186+
} // anonymous namespace
187+
188+
void V8WebSocketClientImpl::OnGarbageCollectedWithFree(const v8::WeakCallbackInfo<V8WebSocketClientImpl>& Data)
189189
{
190190
auto client = Data.GetParameter();
191191
client->CloseImmediately(websocketpp::close::status::normal, "");

0 commit comments

Comments
 (0)