Use sync.WaitGroup to wait each go routines before exit program