Advertisement
Guest User

Untitled

a guest
May 30th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "log"
  6. "sync/atomic"
  7. "time"
  8. )
  9.  
  10. func main() {
  11. var refCounter int32 = 0
  12. fmt.Println(atomic.LoadInt32(&refCounter))
  13. fmt.Println(atomic.AddInt32(&refCounter, 1))
  14. fmt.Println(atomic.LoadInt32(&refCounter))
  15. fmt.Println(refCounter)
  16.  
  17. go func() {
  18. time.Sleep(10 * time.Second)
  19. atomic.AddInt32(&refCounter, -1)
  20. }()
  21.  
  22. for atomic.LoadInt32(&refCounter) != 0 {
  23. log.Println("Sleeping 20 seconds")
  24. time.Sleep(20 * time.Second)
  25. fmt.Println(refCounter)
  26. }
  27. atomic.AddInt32(&refCounter, 1)
  28. atomic.AddInt32(&refCounter, -1)
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement