Renamd Resource.Connect to Resource.Init

graph-rework
noah metz 2023-06-06 16:53:33 -06:00
parent bfd295b3db
commit 7e8045ce39
4 changed files with 11 additions and 10 deletions

@ -18,11 +18,9 @@ func (event * BaseEvent) update(signal GraphSignal) {
SendUpdate(event.parent, new_signal) SendUpdate(event.parent, new_signal)
} }
source_id := signal.Last()
for _, resource := range(event.RequiredResources()) { for _, resource := range(event.RequiredResources()) {
source_id := ""
if signal.Source() != nil {
source_id = signal.Source().ID()
}
if source_id != resource.ID() { if source_id != resource.ID() {
SendUpdate(resource, new_signal) SendUpdate(resource, new_signal)
} }

@ -37,7 +37,7 @@ func NewEventManager(root_event Event, dag_nodes []Resource) * EventManager {
return manager; return manager;
} }
// Connect to all resources(in a thread to handle reconnections), and start the first event // Init to all resources(in a thread to handle reconnections), and start the first event
func (manager * EventManager) Run() error { func (manager * EventManager) Run() error {
log.Logf("manager", "MANAGER_START") log.Logf("manager", "MANAGER_START")
@ -105,7 +105,7 @@ func (manager * EventManager) AddResource(resource Resource) error {
} }
manager.dag_nodes[resource.ID()] = resource manager.dag_nodes[resource.ID()] = resource
abort := make(chan error, 1) abort := make(chan error, 1)
abort_used := resource.Connect(abort) abort_used := resource.Init(abort)
if abort_used == true { if abort_used == true {
manager.aborts = append(manager.aborts, abort) manager.aborts = append(manager.aborts, abort)
} }

@ -47,9 +47,9 @@ type Resource interface {
LockState() LockState()
UnlockState() UnlockState()
Init(abort chan error) bool
lock(node GraphNode) error lock(node GraphNode) error
unlock(node GraphNode) error unlock(node GraphNode) error
Connect(abort chan error) bool
} }
func AddParent(resource Resource, parent Resource) error { func AddParent(resource Resource, parent Resource) error {
@ -200,7 +200,7 @@ func (resource * BaseResource) UnlockState() {
resource.state_lock.Unlock() resource.state_lock.Unlock()
} }
func (resource * BaseResource) Connect(abort chan error) bool { func (resource * BaseResource) Init(abort chan error) bool {
return false return false
} }

@ -96,8 +96,8 @@ func (arena * VirtualArena) update(signal GraphSignal) {
arena.BaseResource.update(signal) arena.BaseResource.update(signal)
} }
func (arena * VirtualArena) Connect(abort chan error) bool { func (arena * VirtualArena) Init(abort chan error) bool {
log.Logf("vex", "Connecting %s", arena.Name()) log.Logf("vex", "Initializing %s", arena.Name())
go func(arena * VirtualArena, abort chan error) { go func(arena * VirtualArena, abort chan error) {
update_str := fmt.Sprintf("VIRTUAL_ARENA connected: %s", arena.Name()) update_str := fmt.Sprintf("VIRTUAL_ARENA connected: %s", arena.Name())
signal := NewSignal(arena, "resource_connected") signal := NewSignal(arena, "resource_connected")
@ -130,6 +130,9 @@ func NewVexEvent(name string, description string) * VexEvent {
event.actions["wait"] = EventWait(event) event.actions["wait"] = EventWait(event)
event.actions["start"] = func() (string, error) { event.actions["start"] = func() (string, error) {
log.Logf("vex", "STARTING_VEX_TOURNAMENT %s", event.Name()) log.Logf("vex", "STARTING_VEX_TOURNAMENT %s", event.Name())
go func() {
}()
return "wait", nil return "wait", nil
} }