Thanks, David.  Let me look into passing as a parameter.

Actually, I didn't paste all the code.  My array in the for loop does have 
a check that if array limit is reached, I set the index to zero and 
overwrite data.  Thus, the last 65536 entries are looked at.

Hemant 

On Saturday, February 16, 2019 at 3:16:54 PM UTC-5, David Riley wrote:
>
> I suspect it's because your reference to the time_array is actually 
> copying it into your closure that's running as the goroutine instead of 
> making a reference to it. You might do better to pass that array as a 
> parameter to the goroutine instead of trying to absorb it as context. 
>
> I should note that your approach of filling a statically sized array is 
> probably not the best one, because that's going to eventually panic once 
> you hit the limit.  But that's a bit out of scope of this discussion, and 
> I'm sure you mostly meant it for illustrative purposes. 
>
>
> - Dave 
>
>
> > On Feb 16, 2019, at 9:29 AM, Hemant Singh <heman...@gmail.com 
> <javascript:>> wrote: 
> > 
> > I have the following program.  The program is processing network packets 
> at 1 Gbps rate.  I don't want to print the rate for every packet.  Instead, 
> I'd like to save the rate in an array and dump the array on Ctrl-c of the 
> program.  When I dump the array on Ctrl-c, the data is all zeroes.  Please 
> see "<===" in the program below.  Anything else one could do? 
> > 
> > Thanks.   
> > 
> > -Hemant 
> > 
> > func main() { 
> > 
> >   const SZ = 65536 
> >   var time_array [SZ]float64 
> > 
> >   c := make(chan os.Signal) 
> >   signal.Notify(c, os.Interrupt, syscall.SIGTERM) 
> > 
> >   go func() { 
> >      <-c 
> >      fmt.Printf("You pressed ctrl + C. User interrupted infinite loop.") 
> >      fmt.Printf("%v ", time_array);  <=== all zeroes printed. 
> >      os.Exit(0) 
> >   }() 
> > 
> > 
> >   i := 0 
> >   for { 
> >     ... 
> >     time_array[i] = rate 
> >     fmt.Printf("%f bps ", rate) <=== value printed is correct. 
> >     i++ 
> >   } 
> > } 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to