make net tqueue use c structs
This commit is contained in:
parent
4f2b9f4e6d
commit
4b69ea3055
@ -58,8 +58,9 @@ function Gate.setportstate(gate, index, state)
|
||||
gate.port_states[index] = state
|
||||
|
||||
if ((gate.port_net_state_num[index][0]>0) ~= (gate.port_net_state[index][0]==1)) and (gate.port_net_in_queue[index][0]==0) then
|
||||
local group = gate.port_nets[index]
|
||||
Simulation.queuegroup(GSim, group)
|
||||
local net = gate.port_nets[index]
|
||||
local cnet = net.c
|
||||
Simulation.queuegroup_c(GSim, cnet)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -284,10 +284,15 @@ function Simulation.queuegateinit(sim, gate)
|
||||
end
|
||||
|
||||
-- Logic Critical
|
||||
function Simulation.queuegroup(sim, net)
|
||||
sim.groupqueue[sim.num_groupqueue+1] = net
|
||||
function Simulation.queuegroup_c(sim, cnet)
|
||||
sim.groupqueue[sim.num_groupqueue+1] = cnet
|
||||
sim.num_groupqueue = sim.num_groupqueue + 1
|
||||
net.in_queue[0] = 1
|
||||
cnet.in_queue[0] = 1
|
||||
end
|
||||
|
||||
function Simulation.queuegroup(sim, net)
|
||||
local cnet = net.c
|
||||
Simulation.queuegroup_c(sim, cnet)
|
||||
end
|
||||
|
||||
function Simulation.queuegroup_safe(sim, group)
|
||||
@ -298,7 +303,7 @@ end
|
||||
|
||||
function Simulation.dequeuegroup(sim, group)
|
||||
if group.in_queue[0]~=0 then
|
||||
array_remove(sim.groupqueue, group, true)
|
||||
array_remove(sim.groupqueue, group.c, true)
|
||||
sim.num_groupqueue = sim.num_groupqueue - 1
|
||||
group.in_queue[0] = 0
|
||||
end
|
||||
@ -330,8 +335,7 @@ end
|
||||
-- Logic Critical
|
||||
function Simulation.ticklogic(sim)
|
||||
for i = 1, sim.num_groupqueue do
|
||||
local net = sim.groupqueue[i]
|
||||
local cnet = net.c
|
||||
local cnet = sim.groupqueue[i]
|
||||
Group.update_c(cnet, sim.current_tick)
|
||||
cnet.in_queue[0] = 0
|
||||
sim.groupqueue[i] = nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user