mirror of
https://github.com/littensy/charm.git
synced 2026-10-20 17:51:37 +00:00
refactor: check type of cleanup
This commit is contained in:
parent
b00e6760c0
commit
e460846dea
1 changed files with 11 additions and 7 deletions
|
|
@ -226,10 +226,12 @@ local function run(effect: EffectNode)
|
||||||
|
|
||||||
purgeDeps(effect)
|
purgeDeps(effect)
|
||||||
|
|
||||||
if not success then
|
if success then
|
||||||
|
if type(result) == "function" then
|
||||||
|
table.insert(effect.cleanups, wrapUserSpace(result))
|
||||||
|
end
|
||||||
|
else
|
||||||
error(result, 0)
|
error(result, 0)
|
||||||
elseif result then
|
|
||||||
table.insert(effect.cleanups, wrapUserSpace(result))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If the effect was disposed during execution but before a cleanup was
|
-- If the effect was disposed during execution but before a cleanup was
|
||||||
|
|
@ -627,7 +629,7 @@ local function effect(fn: () -> ...Cleanup?): Cleanup
|
||||||
activeSub = prevSub
|
activeSub = prevSub
|
||||||
|
|
||||||
if success then
|
if success then
|
||||||
if result then
|
if type(result) == "function" then
|
||||||
table.insert(node.cleanups, wrapUserSpace(result))
|
table.insert(node.cleanups, wrapUserSpace(result))
|
||||||
end
|
end
|
||||||
endBatch()
|
endBatch()
|
||||||
|
|
@ -665,10 +667,12 @@ local function effectScope(fn: () -> ...Cleanup?, detached: boolean?): Cleanup
|
||||||
local success, result = pcall(wrapUserSpace(fn))
|
local success, result = pcall(wrapUserSpace(fn))
|
||||||
activeSub = prevSub
|
activeSub = prevSub
|
||||||
|
|
||||||
if not success then
|
if success then
|
||||||
|
if type(result) == "function" then
|
||||||
|
table.insert(node.cleanups, wrapUserSpace(result))
|
||||||
|
end
|
||||||
|
else
|
||||||
error(result, 2)
|
error(result, 2)
|
||||||
elseif result then
|
|
||||||
table.insert(node.cleanups, wrapUserSpace(result))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return function()
|
return function()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue