Advertisement
Guest User

Untitled

a guest
Apr 21st, 2014
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. func Run() *sync.WaitGroup {
  2. var wg sync.WaitGroup
  3. wg.Add(1)
  4. go func() {
  5. defer wg.Done()
  6. fmt.Printf("goroutine %pn", &wg)
  7.  
  8. time.Sleep(5 * time.Second)
  9. fmt.Println("wokeup")
  10. }()
  11.  
  12. fmt.Printf("returning %pn", &wg)
  13. return &wg
  14. }
  15.  
  16. func main() {
  17. runtime.GOMAXPROCS(3)
  18. wg := Run()
  19.  
  20. fmt.Printf(" main %pn", &wg)
  21. wg.Wait()
  22. }
  23.  
  24. returning 0xc0840045c0
  25. main 0xc084000038
  26. goroutine 0xc0840045c0
  27. wokeup
  28.  
  29. package main
  30.  
  31. import "fmt"
  32. import "sync"
  33. import "time"
  34. import "runtime"
  35.  
  36. func Run() *sync.WaitGroup {
  37. var wg sync.WaitGroup
  38. wg.Add(1)
  39. go func() {
  40. defer wg.Done()
  41. fmt.Printf("goroutine %pn", &wg)
  42. fmt.Println("sleep for 5s")
  43. time.Sleep(5 * time.Second)
  44. fmt.Println("wokeup")
  45. }()
  46. fmt.Printf("returning %pn", &wg)
  47. return &wg
  48. }
  49.  
  50. func main() {
  51. runtime.GOMAXPROCS(3)
  52. wg := Run()
  53. fmt.Printf(" main %pn", wg)
  54. wg.Wait()
  55. }
  56.  
  57. returning 0x1052e2c0
  58. main 0x1052e2c0
  59. goroutine 0x1052e2c0
  60. sleep for 5s
  61.  
  62. fmt.Printf(" main %pn", &wg)
  63.  
  64. fmt.Printf(" main %pn", wg)
  65.  
  66. fmt.Printf(" main %pn", &wg)
  67.  
  68. fmt.Printf(" main %pn", wg)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement