I have an array in test code
arr := []Server{}
which asks for arr[0].GetId()
Server is an interface. ServerInstance is a struct implementing a method of interface, i.e
func (serv ServerInstance) GetId() int {
return serv.Id
}
I have a goroutine like
func (serv *ServerInstance) someFunc
which is updating a variable 'Id' of struct. I am sure of value being updated as -
serv.Id=23445
But this is not being reflected in call at line 3
*Update***
for somecondition {
arr=append(arr,FuncReturningServerIntercae() // calling this invokes goroutine which keeps updating `Id` very frequently
}
for {
for _,s := range arr {
print s.GetId() // ** No Update **
}
sleep(some duration)
}
** Example ** http://play.golang.org/p/zUqJ0hEjxv