time_t now;
int session_to_kill;
int killed = 0;
+ int longrunners = 0;
now = time(NULL);
session_to_kill = 0;
if ( (ccptr!=CC)
&& (config.c_sleeping > 0)
&& (now - (ccptr->lastcmd) > config.c_sleeping) ) {
- ccptr->kill_me = 1;
- ++killed;
+ if (!ccptr->dont_term) {
+ ccptr->kill_me = 1;
+ ++killed;
+ }
+ else
+ longrunners ++;
}
}
end_critical_section(S_SESSION_TABLE);
if (killed > 0)
CtdlLogPrintf(CTDL_INFO, "Terminated %d idle sessions\n", killed);
+ if (longrunners > 0)
+ CtdlLogPrintf(CTDL_INFO, "Didn't terminate %d protected idle sessions;\n", killed);
}
}
cdb_begin_transaction();
- ForEachRoom(check_ref_counts_backend, (void *)new_refcounts );
+ CtdlForEachRoom(check_ref_counts_backend, (void *)new_refcounts );
cdb_end_transaction();
for (a=0; a<MAXFLOORS; ++a) {