Skip to content

Commit

Permalink
Update jabby code
Browse files Browse the repository at this point in the history
  • Loading branch information
Ukendio committed Nov 21, 2024
1 parent 9ce28b9 commit 78127d7
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 41 deletions.
10 changes: 6 additions & 4 deletions demo/src/ReplicatedStorage/start.luau
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,16 @@ local function start(modules)
return true
end)
if RunService:IsClient() then
local player = game:GetService("Players").LocalPlayer
local playergui = player:WaitForChild("PlayerGui")
local client = jabby.obtain_client()
local dtor
UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.F4 then
if dtor then
dtor()
local home = playergui:FindFirstChild("Home")
if home then
home:Destroy()
end
dtor = client.spawn_app(client.apps.home)
client.spawn_app(client.apps.home)
end
end)
end
Expand Down
62 changes: 26 additions & 36 deletions demo/src/ReplicatedStorage/std/scheduler.luau
Original file line number Diff line number Diff line change
Expand Up @@ -71,58 +71,48 @@ do

local function run()
local id = sys.id
local system_data = scheduler.system_data[id]
if system_data.paused then
return
end

scheduler:mark_system_frame_start(id)
sys.callback(dt)
scheduler:mark_system_frame_end(id)
scheduler:run(id, sys.callback, dt)
end

local function panic(str)
-- We don't want to interrupt the loop when we error
task.spawn(error, str)
end
local function begin(events: { Systems })
local threads = {}
local connections = {}
for event, systems in events do
if not event then
continue
end
local event_name = tostring(event)
threads[event] = task.spawn(function()
while true do
dt = event:Wait()

debug.profilebegin(event_name)
for _, s in systems do
sys = s
local didNotYield, why = xpcall(function()
for _ in run do
break
end
end, debug.traceback)

if didNotYield then
continue
connections[event] = event:Connect(function(delta)
debug.profilebegin(event_name)
for _, s in systems do
sys = s
dt = delta
local didNotYield, why = xpcall(function()
for _ in run do
break
end
end, debug.traceback)

if string.find(why, "thread is not yieldable") then
panic(
"Not allowed to yield in the systems."
.. "\n"
.. "System: "
.. debug.info(s.callback, "n")
.. " has been ejected"
)
continue
end
panic(why)
if didNotYield then
continue
end

if string.find(why, "thread is not yieldable") then
panic(
"Not allowed to yield in the systems."
.. "\n"
.. "System: "
.. debug.info(s.callback, "n")
.. " has been ejected"
)
continue
end
debug.profileend()
panic(why)
end
debug.profileend()
end)
end
return threads
Expand Down
2 changes: 1 addition & 1 deletion demo/wally.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"

[dependencies]
jabby = "alicesaidhi/jabby@0.1.0"
jabby = "alicesaidhi/jabby@0.2.0-rc.3"

0 comments on commit 78127d7

Please sign in to comment.