summaryrefslogtreecommitdiff
path: root/script-beta/await.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-11-19 18:39:22 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-11-19 18:39:22 +0800
commit4fd0c6ec626295844470e544264a1b3607f485b1 (patch)
tree79dd5fbf8cec047f0b8dfa1a9a97566683fdd72e /script-beta/await.lua
parent027d4fc5c0c2dd0457365852a4666c75c535fad3 (diff)
downloadlua-language-server-4fd0c6ec626295844470e544264a1b3607f485b1.zip
加个警告
Diffstat (limited to 'script-beta/await.lua')
-rw-r--r--script-beta/await.lua19
1 files changed, 18 insertions, 1 deletions
diff --git a/script-beta/await.lua b/script-beta/await.lua
index 50406918..d8e2a9ad 100644
--- a/script-beta/await.lua
+++ b/script-beta/await.lua
@@ -161,6 +161,23 @@ function m.delay()
return coroutine.yield()
end
+local function warnStepTime(passed, waker)
+ if passed < 1 then
+ log.warn(('Await step takes [%.3f] sec.'):format(passed))
+ return
+ end
+ for i = 1, 100 do
+ local name, v = debug.getupvalue(waker, i)
+ if not name then
+ return
+ end
+ if name == 'co' then
+ log.warn(debug.traceback(v, ('[fire]Await step takes [%.3f] sec.'):format(passed)))
+ return
+ end
+ end
+end
+
--- 步进
function m.step()
local waker = m.delayQueue[m.delayQueueIndex]
@@ -171,7 +188,7 @@ function m.step()
waker()
local passed = os.clock() - clock
if passed > 0.1 then
- log.warn(('Await step takes [%.3f] sec.'):format(passed))
+ warnStepTime(passed, waker)
end
return true
else