chiark
/
gitweb
/
~ian
/
innduct.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a976a51
)
lowvol fixes
author
Ian Jackson
<ian@chiark.greenend.org.uk>
Thu, 6 May 2010 18:32:39 +0000
(19:32 +0100)
committer
Ian Jackson
<ian@chiark.greenend.org.uk>
Thu, 6 May 2010 18:32:39 +0000
(19:32 +0100)
backends/innduct.c
patch
|
blob
|
history
diff --git
a/backends/innduct.c
b/backends/innduct.c
index fb5ddca266c491a63463724f7e378dd9c7546013..6e9dd262dbfd5bd4c573dc5b3c858df6fb949a91 100644
(file)
--- a/
backends/innduct.c
+++ b/
backends/innduct.c
@@
-533,7
+533,7
@@
static char *globpat_backlog;
static pid_t self_pid;
static int *lowvol_perperiod;
static int lowvol_circptr;
static pid_t self_pid;
static int *lowvol_perperiod;
static int lowvol_circptr;
-static int lowvol_total;
+static int lowvol_total;
/* does not include current period */
/* statemc_init initialises */
static StateMachineState sms;
/* statemc_init initialises */
static StateMachineState sms;
@@
-1191,9
+1191,10
@@
static void conn_idle_close(Conn *conn, const char *why) {
static void check_idle_conns(void) {
Conn *conn;
static void check_idle_conns(void) {
Conn *conn;
- int v
erylowvol
= lowvol_perperiod[lowvol_circptr];
+ int v
olthisperiod
= lowvol_perperiod[lowvol_circptr];
lowvol_circptr++;
lowvol_circptr %= lowvol_periods;
lowvol_circptr++;
lowvol_circptr %= lowvol_periods;
+ lowvol_total += volthisperiod;
lowvol_total -= lowvol_perperiod[lowvol_circptr];
lowvol_perperiod[lowvol_circptr]= 0;
lowvol_total -= lowvol_perperiod[lowvol_circptr];
lowvol_perperiod[lowvol_circptr]= 0;
@@
-1222,9
+1223,9
@@
static void check_idle_conns(void) {
}
conn= LIST_HEAD(conns);
}
conn= LIST_HEAD(conns);
- if (!v
erylowvol
&&
+ if (!v
olthisperiod
&&
conns.count==1 &&
conns.count==1 &&
- lowvol_total
+verylowvol
< lowvol_thresh &&
+ lowvol_total < lowvol_thresh &&
!conn_busy(conn))
conn_idle_close(conn, "low volume");
}
!conn_busy(conn))
conn_idle_close(conn, "low volume");
}
@@
-1374,7
+1375,7
@@
static void connect_start(void) {
assert(!connecting_fdpass_sock);
info("starting connection attempt");
assert(!connecting_fdpass_sock);
info("starting connection attempt");
- int ok_
reconnect_delay_periods= reconnect_delay_periods
;
+ int ok_
until_connect= until_connect
;
reconnect_blocking_event();
int socks[2];
reconnect_blocking_event();
int socks[2];
@@
-1470,7
+1471,7
@@
static void connect_start(void) {
on_fd_read_except(connecting_fdpass_sock, connchild_event);
if (!conns.count)
on_fd_read_except(connecting_fdpass_sock, connchild_event);
if (!conns.count)
-
reconnect_delay_periods= ok_reconnect_delay_periods
;
+
until_connect= ok_until_connect
;
}
/*---------- assigning articles to conns, and transmitting ----------*/
}
/*---------- assigning articles to conns, and transmitting ----------*/
@@
-3311,11
+3312,11
@@
static void period(void) {
debug("PERIOD"
" sms=%s[%d] conns=%d until_connect=%d"
" input_files main:%s flushing:%s backlog:%s[%d]"
debug("PERIOD"
" sms=%s[%d] conns=%d until_connect=%d"
" input_files main:%s flushing:%s backlog:%s[%d]"
- " children connecting=%ld inndcomm=%ld"
+ " children connecting=%ld inndcomm=%ld
lowvol_total=%d
"
,
sms_names[sms], until_flush, conns.count, until_connect,
dipf_main, dipf_flushing, dipf_backlog, until_backlog_nextscan,
,
sms_names[sms], until_flush, conns.count, until_connect,
dipf_main, dipf_flushing, dipf_backlog, until_backlog_nextscan,
- (long)connecting_child, (long)inndcomm_child
+ (long)connecting_child, (long)inndcomm_child
, lowvol_total
);
free(dipf_main);
);
free(dipf_main);
@@
-3406,6
+3407,17
@@
CCMD(dump) {
DUMPV("%d", , cli_master);
fprintf(f,"\n");
DUMPV("%d", , cli_master);
fprintf(f,"\n");
+ fprintf(f,"lowvol");
+ DUMPV("%d", , lowvol_circptr);
+ DUMPV("%d", , lowvol_total);
+ fprintf(f,":");
+ for (i=0; i<lowvol_periods; i++) {
+ fprintf(f," ");
+ if (i==lowvol_circptr) fprintf(f,"*");
+ fprintf(f,"%d",lowvol_perperiod[i]);
+ }
+ fprintf(f,"\n");
+
fprintf(f,"filemon ");
filemon_method_dump_info(f);
fprintf(f,"filemon ");
filemon_method_dump_info(f);
@@
-3774,6
+3786,7
@@
int main(int argc, char **argv) {
lowvol_perperiod[i]= lowvol_thresh;
lowvol_total += lowvol_thresh;
}
lowvol_perperiod[i]= lowvol_thresh;
lowvol_total += lowvol_thresh;
}
+ lowvol_total -= lowvol_thresh;
/* set things up */
/* set things up */