This commit is contained in:
Alistair Smith
2025-05-30 14:52:59 -07:00
parent d7a517cdfc
commit 53958f369d
2 changed files with 12 additions and 5 deletions

View File

@@ -59,6 +59,10 @@ public:
return m_globalObject;
}
uint32_t messagesSentThisTick = 0;
uint32_t lastSendTickNr = -1; // Will be updated to the us_loop_t->data.iteration_nr every tick we send a message in
// https://github.com/oven-sh/bun/blob/d7a517cdfc31705a6b4fb696dc834ba8d98d5d3a/packages/bun-usockets/src/internal/loop_data.h#L58
template<bool isSSL>
us_socket_context_t* webSocketContext()
{

View File

@@ -252,13 +252,16 @@ void MessagePort::processMessageBatch(ScriptExecutionContext& context, Vector<Me
size_t i = 0;
auto& vm = context.vm();
for (; i < messageCount && i < maxMessagesPerTick; ++i) {
auto& message = messages[i];
auto* globalObject = defaultGlobalObject(context.globalObject());
if (Zig::GlobalObject::scriptExecutionStatus(globalObject, globalObject) != ScriptExecutionStatus::Running)
return;
auto* globalObject = defaultGlobalObject(context.globalObject());
if (Zig::GlobalObject::scriptExecutionStatus(globalObject, globalObject) != ScriptExecutionStatus::Running) {
completionCallback();
return;
}
for (; i < messageCount && i < maxMessagesPerTick; ++i) {
auto scope = DECLARE_CATCH_SCOPE(vm);
auto& message = messages[i];
auto ports = MessagePort::entanglePorts(context, WTFMove(message.transferredPorts));
auto event = MessageEvent::create(*context.jsGlobalObject(), message.message.releaseNonNull(), {}, {}, {}, WTFMove(ports));
dispatchEvent(event.event);