Hey, thanks for your response. It appears that the errors are completely anonymous. Have no clue what to do at this point; the error doesn’t even appear after key game events or triggers so I’m completely lost. Why is Roblox not supplying context with the error message?
Note: I can only reproduce this in-game. Haven’t seen it once in studio; perhaps more common when large amount of players in-game?
function Signal.new()
return setmetatable({
_handlerListHead = false,
_firing = false,
}, Signal)
end
function Signal:Fire(...)
local item = self._handlerListHead
if self._firing then
error("re-entrancy")
end
self._firing = true
while item do
if item._connected then
--local trace = debug.traceback()
--local split = trace:split("\n")
--local new = {}
--for _, v in split do
-- local newSplit = v:split(".")
-- table.insert(new, newSplit[#newSplit])
--end
--print(table.concat(new, ", "))
if not freeRunnerThread then
freeRunnerThread = coroutine.create(runEventHandlerInFreeThread)
-- Get the freeRunnerThread to the first yield
coroutine.resume(freeRunnerThread)
end
task.spawn(freeRunnerThread, item._fn, ...)
end
item = item._next
end
self._firing = false
end