From: antirez Date: Mon, 14 Nov 2011 14:59:56 +0000 (+0100) Subject: Merge branch 'unstable' into incrbyfloat X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/d4a3cfed9c95e0ca5f8bcc771f8844ad17895c69?ds=inline;hp=-c Merge branch 'unstable' into incrbyfloat --- d4a3cfed9c95e0ca5f8bcc771f8844ad17895c69 diff --combined src/redis.c index 527b0538,23b7b280..a6d1b577 --- a/src/redis.c +++ b/src/redis.c @@@ -165,7 -165,6 +165,7 @@@ struct redisCommand redisCommandTable[ {"hexists",hexistsCommand,3,"r",0,NULL,1,1,1,0,0}, {"incrby",incrbyCommand,3,"wm",0,NULL,1,1,1,0,0}, {"decrby",decrbyCommand,3,"wm",0,NULL,1,1,1,0,0}, + {"incrbyfloat",incrbyfloatCommand,3,"wm",0,NULL,1,1,1,0,0}, {"getset",getsetCommand,3,"wm",0,NULL,1,1,1,0,0}, {"mset",msetCommand,-3,"wm",0,NULL,1,-1,2,0,0}, {"msetnx",msetnxCommand,-3,"wm",0,NULL,1,-1,2,0,0}, @@@ -563,17 -562,17 +563,17 @@@ void activeExpireCycle(void) * of the keys were expired. */ do { long num = dictSize(db->expires); - time_t now = time(NULL); + long long now = mstime(); expired = 0; if (num > REDIS_EXPIRELOOKUPS_PER_CRON) num = REDIS_EXPIRELOOKUPS_PER_CRON; while (num--) { dictEntry *de; - time_t t; + long long t; if ((de = dictGetRandomKey(db->expires)) == NULL) break; - t = (time_t) dictGetVal(de); + t = dictGetSignedIntegerVal(de); if (now > t) { sds key = dictGetKey(de); robj *keyobj = createStringObject(key,sdslen(key)); diff --combined src/redis.h index 0024792c,79ff3a6a..3d1e81aa --- a/src/redis.h +++ b/src/redis.h @@@ -39,7 -39,7 +39,7 @@@ /* Static server configuration */ #define REDIS_SERVERPORT 6379 /* TCP port */ - #define REDIS_MAXIDLETIME (60*5) /* default client timeout */ + #define REDIS_MAXIDLETIME 0 /* default client timeout: infinite */ #define REDIS_IOBUF_LEN (1024*16) #define REDIS_LOADBUF_LEN 1024 #define REDIS_DEFAULT_DBNUM 16 @@@ -811,7 -811,6 +811,7 @@@ robj *tryObjectEncoding(robj *o) robj *getDecodedObject(robj *o); size_t stringObjectLen(robj *o); robj *createStringObjectFromLongLong(long long value); +robj *createStringObjectFromLongDouble(long double value); robj *createListObject(void); robj *createZiplistObject(void); robj *createSetObject(void); @@@ -824,8 -823,6 +824,8 @@@ int checkType(redisClient *c, robj *o, int getLongLongFromObjectOrReply(redisClient *c, robj *o, long long *target, const char *msg); int getDoubleFromObjectOrReply(redisClient *c, robj *o, double *target, const char *msg); int getLongLongFromObject(robj *o, long long *target); +int getLongDoubleFromObject(robj *o, long double *target); +int getLongDoubleFromObjectOrReply(redisClient *c, robj *o, long double *target, const char *msg); char *strEncoding(int encoding); int compareStringObjects(robj *a, robj *b); int equalStringObjects(robj *a, robj *b); @@@ -1007,7 -1004,6 +1007,7 @@@ void incrCommand(redisClient *c) void decrCommand(redisClient *c); void incrbyCommand(redisClient *c); void decrbyCommand(redisClient *c); +void incrbyfloatCommand(redisClient *c); void selectCommand(redisClient *c); void randomkeyCommand(redisClient *c); void keysCommand(redisClient *c);