diff options
| author | Jeff Carr <[email protected]> | 2024-01-03 13:37:03 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-03 13:37:03 -0600 |
| commit | a08bbaf04ff536e8fae3ab5396dc54c290945301 (patch) | |
| tree | 79e0cd54b6d67ded948e6ce9caba68ab7aae5444 /debugGochan.go | |
| parent | d8f1107387af688e9b161a0c01dd70241741edba (diff) | |
all debug stuff moved to 'go.wit.com/gui/debugger'v0.9.9
I finally was able to clean out all the debugging
code and make a clean, new GO debugger. It's quite
nice I think. Well, it's useful to me at any rate.
2024 New Years wish: someone contributes code to improve it
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'debugGochan.go')
| -rw-r--r-- | debugGochan.go | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/debugGochan.go b/debugGochan.go deleted file mode 100644 index 35aa651..0000000 --- a/debugGochan.go +++ /dev/null @@ -1,97 +0,0 @@ -// https://www.digitalocean.com/community/tutorials/how-to-run-multiple-functions-concurrently-in-go -// who came up with the idea of making community tutorials. that was a good idea! - -package gui - -import ( - "fmt" - "sync" -) - -var debugWG *sync.WaitGroup -var debugNumberChan chan int - -func (n *Node) DebugGoChannels() { - var w, g *Node - - w = n.NewWindow("Debug GO Channels") - w.Custom = w.StandardClose - - g = w.NewGroup("Channel stuff") - - // var debugWG sync.WaitGroup - g.NewButton("init()", func () { - if (debugNumberChan == nil) { - log(true, "making debugNumberChan channel") - debugNumberChan = make(chan int) - } else { - log(true, "debugNumberChan already made") - } - debugWG = new(sync.WaitGroup) - }) - g.NewButton("go printInt(x) (read x values off the channel)", func () { - debugWG.Add(1) - go printInt(2, "routine1") - debugWG.Add(1) - go printInt(2, "routine2") - }) - g.NewButton("sendNumber(2) (chan <- 2, 4)", func () { - debugWG.Add(1) - debugWG.Add(1) - go sendNumber(2) - go sendNumber(4) - }) - g.NewButton("sendNumber(1) (chan <- 7)", func () { - debugWG.Add(1) - go sendNumber(7) - }) - g.NewButton("send 4 numbers (chan <- int)", func () { - log(true, "generateNumbers(4)") - go generateNumbers(4) - }) - g.NewButton("debugWG.Done()", func () { - log(true, "ran debugWG.Done()") - debugWG.Done() - }) - g.NewButton("close chan", func () { - log(true, "close() on", debugNumberChan) - close(debugNumberChan) - }) - g.NewButton("print", func () { - log(true, "waitgroup counter is ?") - }) -} -func sendNumber(i int) { - log(true, "START debugNumberChan <-", i, " (sending", i, "to channel)") - debugNumberChan <- i - debugWG.Wait() - log(true, "END debugNumberChan sendNumber() done", i) -} - -func generateNumbers(total int) { - fmt.Printf("START generateNumbers()\n") - for idx := 1; idx <= total; idx++ { - log(true, "ran debugNumberChan <= idx where idx =", idx) - fmt.Printf("S generateNumbers() sending %d to channel\n", idx) - debugNumberChan <- idx - // res, err := (<-r)() - fmt.Printf("E generateNumbers() sending %d to channel\n", idx) - } - debugWG.Wait() - fmt.Printf("END generateNumbers()\n") -} - -// i equals the number of times to read values from the channel -func printInt(i int, name string) { - tmp := 1 - log(true, "START printInt", name, "read debugNumberChan()") - for num := range debugNumberChan { - log(true, "printInt()",name, "read", num, "from channel") - debugWG.Done() - if (tmp == i) { - return - } - tmp += 1 - } - fmt.Printf("END printInt()", name, "read debugNumberChan\n") -} |
