Lines Matching refs:c

102 static void createMissingClients(client c);
125 static void freeClient(client c) { in freeClient() argument
127 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in freeClient()
128 aeDeleteFileEvent(config.el,c->context->fd,AE_READABLE); in freeClient()
129 redisFree(c->context); in freeClient()
130 sdsfree(c->obuf); in freeClient()
131 zfree(c->randptr); in freeClient()
132 zfree(c); in freeClient()
134 ln = listSearchKey(config.clients,c); in freeClient()
149 static void resetClient(client c) { in resetClient() argument
150 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in resetClient()
151 aeDeleteFileEvent(config.el,c->context->fd,AE_READABLE); in resetClient()
152 aeCreateFileEvent(config.el,c->context->fd,AE_WRITABLE,writeHandler,c); in resetClient()
153 c->written = 0; in resetClient()
154 c->pending = config.pipeline; in resetClient()
157 static void randomizeClientKey(client c) { in randomizeClientKey() argument
160 for (i = 0; i < c->randlen; i++) { in randomizeClientKey()
161 char *p = c->randptr[i]+11; in randomizeClientKey()
173 static void clientDone(client c) { in clientDone() argument
175 freeClient(c); in clientDone()
180 resetClient(c); in clientDone()
183 createMissingClients(c); in clientDone()
185 freeClient(c); in clientDone()
190 client c = privdata; in readHandler() local
199 if (c->latency < 0) c->latency = ustime()-(c->start); in readHandler()
201 if (redisBufferRead(c->context) != REDIS_OK) { in readHandler()
202 fprintf(stderr,"Error: %s\n",c->context->errstr); in readHandler()
205 while(c->pending) { in readHandler()
206 if (redisGetReply(c->context,&reply) != REDIS_OK) { in readHandler()
207 fprintf(stderr,"Error: %s\n",c->context->errstr); in readHandler()
228 if (c->prefix_pending > 0) { in readHandler()
229 c->prefix_pending--; in readHandler()
230 c->pending--; in readHandler()
232 if (c->prefixlen > 0) { in readHandler()
234 sdsrange(c->obuf, c->prefixlen, -1); in readHandler()
237 for (j = 0; j < c->randlen; j++) in readHandler()
238 c->randptr[j] -= c->prefixlen; in readHandler()
239 c->prefixlen = 0; in readHandler()
245 config.latency[config.requests_finished++] = c->latency; in readHandler()
246 c->pending--; in readHandler()
247 if (c->pending == 0) { in readHandler()
248 clientDone(c); in readHandler()
259 client c = privdata; in writeHandler() local
265 if (c->written == 0) { in writeHandler()
268 freeClient(c); in writeHandler()
273 if (config.randomkeys) randomizeClientKey(c); in writeHandler()
274 c->start = ustime(); in writeHandler()
275 c->latency = -1; in writeHandler()
278 if (sdslen(c->obuf) > c->written) { in writeHandler()
279 void *ptr = c->obuf+c->written; in writeHandler()
280 ssize_t nwritten = write(c->context->fd,ptr,sdslen(c->obuf)-c->written); in writeHandler()
284 freeClient(c); in writeHandler()
287 c->written += nwritten; in writeHandler()
288 if (sdslen(c->obuf) == c->written) { in writeHandler()
289 aeDeleteFileEvent(config.el,c->context->fd,AE_WRITABLE); in writeHandler()
290 aeCreateFileEvent(config.el,c->context->fd,AE_READABLE,readHandler,c); in writeHandler()
318 client c = zmalloc(sizeof(struct _client)); in createClient() local
321 c->context = redisConnectNonBlock(config.hostip,config.hostport); in createClient()
323 c->context = redisConnectUnixNonBlock(config.hostsocket); in createClient()
325 if (c->context->err) { in createClient()
328 fprintf(stderr,"%s:%d: %s\n",config.hostip,config.hostport,c->context->errstr); in createClient()
330 fprintf(stderr,"%s: %s\n",config.hostsocket,c->context->errstr); in createClient()
334 c->context->reader->maxbuf = 0; in createClient()
339 c->obuf = sdsempty(); in createClient()
343 c->prefix_pending = 0; in createClient()
347 c->obuf = sdscatlen(c->obuf, buf, len); in createClient()
349 c->prefix_pending++; in createClient()
357 c->obuf = sdscatprintf(c->obuf,"*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n", in createClient()
359 c->prefix_pending++; in createClient()
361 c->prefixlen = sdslen(c->obuf); in createClient()
364 c->obuf = sdscatlen(c->obuf, in createClient()
369 c->obuf = sdscatlen(c->obuf,cmd,len); in createClient()
372 c->written = 0; in createClient()
373 c->pending = config.pipeline+c->prefix_pending; in createClient()
374 c->randptr = NULL; in createClient()
375 c->randlen = 0; in createClient()
380 c->randlen = from->randlen; in createClient()
381 c->randfree = 0; in createClient()
382 c->randptr = zmalloc(sizeof(char*)*c->randlen); in createClient()
384 for (j = 0; j < (int)c->randlen; j++) { in createClient()
385 c->randptr[j] = c->obuf + (from->randptr[j]-from->obuf); in createClient()
387 c->randptr[j] += c->prefixlen - from->prefixlen; in createClient()
390 char *p = c->obuf; in createClient()
392 c->randlen = 0; in createClient()
393 c->randfree = RANDPTR_INITIAL_SIZE; in createClient()
394 c->randptr = zmalloc(sizeof(char*)*c->randfree); in createClient()
396 if (c->randfree == 0) { in createClient()
397 c->randptr = zrealloc(c->randptr,sizeof(char*)*c->randlen*2); in createClient()
398 c->randfree += c->randlen; in createClient()
400 c->randptr[c->randlen++] = p; in createClient()
401 c->randfree--; in createClient()
407 aeCreateFileEvent(config.el,c->context->fd,AE_WRITABLE,writeHandler,c); in createClient()
408 listAddNodeTail(config.clients,c); in createClient()
410 return c; in createClient()
413 static void createMissingClients(client c) { in createMissingClients() argument
417 createClient(NULL,0,c); in createMissingClients()
462 client c; in benchmark() local
468 c = createClient(cmd,len,NULL); in benchmark()
469 createMissingClients(c); in benchmark()
653 client c; in main() local
695 c = createClient("",0,NULL); /* will never receive a reply */ in main()
696 createMissingClients(c); in main()