diff options
Diffstat (limited to 'addNode.go')
| -rw-r--r-- | addNode.go | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -11,10 +11,10 @@ func (me *TreeInfo) AddNode(a *widget.Action) *Node { } else { log.Info("TREE: mutex lock was already held before AddNode()") } - return AddNode(a) + return addNode(a) } -func AddNode(a *widget.Action) *Node { +func addNode(a *widget.Action) *Node { n := new(Node) n.WidgetType = a.WidgetType n.WidgetId = a.WidgetId @@ -60,18 +60,23 @@ func AddNode(a *widget.Action) *Node { } func (me *TreeInfo) DeleteNode(n *Node) { - me.Lock() - defer me.Unlock() + log.Log(TREEWARN, "DeleteNode() before lock n =", n.WidgetId, n.GetProgName()) + if me.TryLock() { + defer me.Unlock() + } else { + log.Info("TREE: mutex lock was already held before DeleteNode()") + } p := n.Parent + log.Log(TREEWARN, "DeleteNode() parent =", p.WidgetId, p.GetProgName()) for i, child := range p.children { - log.Log(TREE, "parent has child:", i, child.WidgetId, child.GetProgName()) + log.Log(TREEWARN, "parent has child:", i, child.WidgetId, child.GetProgName()) if n == child { - log.Log(TREE, "Found child ==", i, child.WidgetId, child.GetProgName()) - log.Log(TREE, "Found n ==", i, n.WidgetId, n.GetProgName()) + log.Log(TREEWARN, "Found child ==", i, child.WidgetId, child.GetProgName()) + log.Log(TREEWARN, "Found n ==", i, n.WidgetId, n.GetProgName()) p.children = append(p.children[:i], p.children[i+1:]...) } } for i, child := range p.children { - log.Log(TREE, "parent now has child:", i, child.WidgetId, child.GetProgName()) + log.Log(TREEWARN, "parent now has child:", i, child.WidgetId, child.GetProgName()) } } |
