func getWorkerNew(serverAddrs_ []string) func(wg *sync.WaitGroup, ch chan int, stats *Stats) { config := memcache_new.ClientConfig{ ConnectionsCount: *connectionsCount, MaxPendingRequestsCount: *maxPendingRequestsCount, ReadBufferSize: *readBufferSize, WriteBufferSize: *writeBufferSize, OSReadBufferSize: *osReadBufferSize, OSWriteBufferSize: *osWriteBufferSize, } var client memcache_new.Cacher if len(serverAddrs_) < 2 { client = &memcache_new.Client{ ServerAddr: *serverAddrs, ClientConfig: config, } client.Start() } else { c := &memcache_new.DistributedClient{ ClientConfig: config, } c.StartStatic(serverAddrs_) client = c } worker := workerGetMissNew switch *workerMode { case "GetHit": precreateItemsNew(client) worker = workerGetHitNew case "GetMiss": client.Delete(key) worker = workerGetMissNew case "Set": worker = workerSetNew case "GetSet": precreateItemsNew(client) worker = workerGetSetNew default: log.Fatalf("Unknown workerMode=[%s]", *workerMode) } return func(wg *sync.WaitGroup, ch chan int, stats *Stats) { worker(client, wg, ch, stats) } }