summaryrefslogtreecommitdiff
path: root/addNode.go
diff options
context:
space:
mode:
Diffstat (limited to 'addNode.go')
-rw-r--r--addNode.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/addNode.go b/addNode.go
index 544792f..2f7ccea 100644
--- a/addNode.go
+++ b/addNode.go
@@ -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())
}
}