mirror of
https://github.com/lune-org/lune.git
synced 2024-12-12 13:00:37 +00:00
Add some different debugging
This commit is contained in:
parent
a8db74d40d
commit
7e7cfd7cd0
3 changed files with 9 additions and 7 deletions
|
@ -136,9 +136,7 @@ impl<'lua> RequireContext<'lua> {
|
||||||
.lua
|
.lua
|
||||||
.registry_value::<Vec<LuaValue>>(k)
|
.registry_value::<Vec<LuaValue>>(k)
|
||||||
.expect("Missing require result in lua registry");
|
.expect("Missing require result in lua registry");
|
||||||
let multi = LuaMultiValue::from_vec(multi_vec);
|
Ok(LuaMultiValue::from_vec(multi_vec))
|
||||||
println!("Got multi value from cache: {multi:?}");
|
|
||||||
Ok(multi)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,13 +191,13 @@ impl<'lua> RequireContext<'lua> {
|
||||||
|
|
||||||
// Schedule the thread to run, wait for it to finish running
|
// Schedule the thread to run, wait for it to finish running
|
||||||
let thread_id = sched.push_back(file_thread, ())?;
|
let thread_id = sched.push_back(file_thread, ())?;
|
||||||
|
println!("Waiting for thread with id {thread_id:?}");
|
||||||
let thread_res = sched.wait_for_thread(thread_id).await;
|
let thread_res = sched.wait_for_thread(thread_id).await;
|
||||||
|
|
||||||
// Return the result of the thread, storing any lua value(s) in the registry
|
// Return the result of the thread, storing any lua value(s) in the registry
|
||||||
match thread_res {
|
match thread_res {
|
||||||
Err(e) => Err(e),
|
Err(e) => Err(e),
|
||||||
Ok(v) => {
|
Ok(v) => {
|
||||||
println!("Got multi value from require: {v:?}");
|
|
||||||
let multi_vec = v.into_vec();
|
let multi_vec = v.into_vec();
|
||||||
let multi_key = self
|
let multi_key = self
|
||||||
.lua
|
.lua
|
||||||
|
@ -260,8 +258,6 @@ impl<'lua> RequireContext<'lua> {
|
||||||
.expect("Pending require broadcaster was unexpectedly removed");
|
.expect("Pending require broadcaster was unexpectedly removed");
|
||||||
broadcast_tx.send(()).ok();
|
broadcast_tx.send(()).ok();
|
||||||
|
|
||||||
println!("Got return value from require: {load_val:?}");
|
|
||||||
|
|
||||||
load_val
|
load_val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ where
|
||||||
|
|
||||||
// Resume the thread, ensuring that the schedulers
|
// Resume the thread, ensuring that the schedulers
|
||||||
// current thread id is set correctly for error catching
|
// current thread id is set correctly for error catching
|
||||||
|
println!("Resuming thread with id {thread_id:?}");
|
||||||
self.state.set_current_thread_id(Some(thread_id));
|
self.state.set_current_thread_id(Some(thread_id));
|
||||||
let res = thread.resume::<_, LuaMultiValue>(args);
|
let res = thread.resume::<_, LuaMultiValue>(args);
|
||||||
self.state.set_current_thread_id(None);
|
self.state.set_current_thread_id(None);
|
||||||
|
@ -56,7 +57,8 @@ where
|
||||||
self.lua.emit_error(err.clone());
|
self.lua.emit_error(err.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send results of resuming this thread to any listeners
|
// If the thread has finished running completely,
|
||||||
|
// send results of final resume to any listeners
|
||||||
if let Some(sender) = self.thread_senders.borrow_mut().remove(&thread_id) {
|
if let Some(sender) = self.thread_senders.borrow_mut().remove(&thread_id) {
|
||||||
if sender.receiver_count() > 0 {
|
if sender.receiver_count() > 0 {
|
||||||
let stored = match res {
|
let stored = match res {
|
||||||
|
|
|
@ -2,10 +2,14 @@ local task = require("@lune/task")
|
||||||
|
|
||||||
print("Requiring 1")
|
print("Requiring 1")
|
||||||
local module1 = require("./modules/async")
|
local module1 = require("./modules/async")
|
||||||
|
print("Required 1")
|
||||||
print("Requiring 2")
|
print("Requiring 2")
|
||||||
local module2 = require("./modules/async")
|
local module2 = require("./modules/async")
|
||||||
|
print("Required 2")
|
||||||
|
|
||||||
|
print("Waiting")
|
||||||
task.wait(1)
|
task.wait(1)
|
||||||
|
print("Waited")
|
||||||
|
|
||||||
assert(type(module1) == "table", "Required module1 did not return a table")
|
assert(type(module1) == "table", "Required module1 did not return a table")
|
||||||
assert(module1.Foo == "Bar", "Required module1 did not contain correct values")
|
assert(module1.Foo == "Bar", "Required module1 did not contain correct values")
|
||||||
|
|
Loading…
Reference in a new issue