Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
0420c327
Commit
0420c327
authored
Jul 10, 2018
by
antirez
Browse files
Merge branch 'unstable' of github.com:/antirez/redis into unstable
parents
28e95c7c
7239e9ca
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/ae.c
View file @
0420c327
...
...
@@ -433,7 +433,7 @@ int aeProcessEvents(aeEventLoop *eventLoop, int flags)
* before replying to a client. */
int
invert
=
fe
->
mask
&
AE_BARRIER
;
/* Note the "fe->mask & mask & ..." code: maybe an already
/* Note the "fe->mask & mask & ..." code: maybe an already
* processed event removed an element that fired and we still
* didn't processed, so we check if the event is still valid.
*
...
...
@@ -485,7 +485,7 @@ int aeWait(int fd, int mask, long long milliseconds) {
if
((
retval
=
poll
(
&
pfd
,
1
,
milliseconds
))
==
1
)
{
if
(
pfd
.
revents
&
POLLIN
)
retmask
|=
AE_READABLE
;
if
(
pfd
.
revents
&
POLLOUT
)
retmask
|=
AE_WRITABLE
;
if
(
pfd
.
revents
&
POLLERR
)
retmask
|=
AE_WRITABLE
;
if
(
pfd
.
revents
&
POLLERR
)
retmask
|=
AE_WRITABLE
;
if
(
pfd
.
revents
&
POLLHUP
)
retmask
|=
AE_WRITABLE
;
return
retmask
;
}
else
{
...
...
src/blocked.c
View file @
0420c327
...
...
@@ -406,10 +406,13 @@ void handleClientsBlockedOnKeys(void) {
/* Lookup the consumer for the group, if any. */
streamConsumer
*
consumer
=
NULL
;
int
noack
=
0
;
if
(
group
)
{
consumer
=
streamLookupConsumer
(
group
,
receiver
->
bpop
.
xread_consumer
->
ptr
,
1
);
noack
=
receiver
->
bpop
.
xread_group_noack
;
}
/* Emit the two elements sub-array consisting of
...
...
@@ -426,7 +429,7 @@ void handleClientsBlockedOnKeys(void) {
};
streamReplyWithRange
(
receiver
,
s
,
&
start
,
NULL
,
receiver
->
bpop
.
xread_count
,
0
,
group
,
consumer
,
0
,
&
pi
);
0
,
group
,
consumer
,
noack
,
&
pi
);
/* Note that after we unblock the client, 'gt'
* and other receiver->bpop stuff are no longer
...
...
src/networking.c
View file @
0420c327
...
...
@@ -140,6 +140,7 @@ client *createClient(int fd) {
c
->
bpop
.
target
=
NULL
;
c
->
bpop
.
xread_group
=
NULL
;
c
->
bpop
.
xread_consumer
=
NULL
;
c
->
bpop
.
xread_group_noack
=
0
;
c
->
bpop
.
numreplicas
=
0
;
c
->
bpop
.
reploffset
=
0
;
c
->
woff
=
0
;
...
...
src/server.c
View file @
0420c327
...
...
@@ -1165,7 +1165,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) {
}
else
{
/* If there is not a background saving/rewrite in progress check if
* we have to save/rewrite now. */
for
(
j
=
0
;
j
<
server
.
saveparamslen
;
j
++
)
{
for
(
j
=
0
;
j
<
server
.
saveparamslen
;
j
++
)
{
struct
saveparam
*
sp
=
server
.
saveparams
+
j
;
/* Save if we reached the given amount of changes,
...
...
@@ -1185,23 +1185,23 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) {
rdbSaveBackground
(
server
.
rdb_filename
,
rsiptr
);
break
;
}
}
/* Trigger an AOF rewrite if needed. */
if
(
server
.
aof_state
==
AOF_ON
&&
server
.
rdb_child_pid
==
-
1
&&
server
.
aof_child_pid
==
-
1
&&
server
.
aof_rewrite_perc
&&
server
.
aof_current_size
>
server
.
aof_rewrite_min_size
)
{
}
/* Trigger an AOF rewrite if needed. */
if
(
server
.
aof_state
==
AOF_ON
&&
server
.
rdb_child_pid
==
-
1
&&
server
.
aof_child_pid
==
-
1
&&
server
.
aof_rewrite_perc
&&
server
.
aof_current_size
>
server
.
aof_rewrite_min_size
)
{
long
long
base
=
server
.
aof_rewrite_base_size
?
server
.
aof_rewrite_base_size
:
1
;
server
.
aof_rewrite_base_size
:
1
;
long
long
growth
=
(
server
.
aof_current_size
*
100
/
base
)
-
100
;
if
(
growth
>=
server
.
aof_rewrite_perc
)
{
serverLog
(
LL_NOTICE
,
"Starting automatic rewriting of AOF on %lld%% growth"
,
growth
);
rewriteAppendOnlyFileBackground
();
}
}
}
}
...
...
src/server.h
View file @
0420c327
...
...
@@ -665,6 +665,7 @@ typedef struct blockingState {
robj
*
xread_group
;
/* XREADGROUP group name. */
robj
*
xread_consumer
;
/* XREADGROUP consumer name. */
mstime_t
xread_retry_time
,
xread_retry_ttl
;
int
xread_group_noack
;
/* BLOCKED_WAIT */
int
numreplicas
;
/* Number of replicas we are waiting for ACK. */
...
...
src/t_stream.c
View file @
0420c327
...
...
@@ -1461,6 +1461,7 @@ void xreadCommand(client *c) {
incrRefCount
(
consumername
);
c
->
bpop
.
xread_group
=
groupname
;
c
->
bpop
.
xread_consumer
=
consumername
;
c
->
bpop
.
xread_group_noack
=
noack
;
}
else
{
c
->
bpop
.
xread_group
=
NULL
;
c
->
bpop
.
xread_consumer
=
NULL
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment