Select Git revision
disk-end-of-atomic.c
-
Per Cederqvist authoredPer Cederqvist authored
disk-end-of-atomic.c 2.09 KiB
/*
* $Id: disk-end-of-atomic.c,v 0.9 1993/10/10 17:04:05 ceder Exp $
* Copyright (C) 1991 Lysator Academic Computer Association.
*
* This file is part of the LysKOM server.
*
* LysKOM is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* LysKOM is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License
* along with LysKOM; see the file COPYING. If not, write to
* Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN,
* or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* Please mail bug reports to bug-lyskom@lysator.liu.se.
*/
/*
* end-of-atomic.c
*
* This is the magic function which is called at the end of every atomic
* call to the server. It is responisble for
* Free:ing all tmp_alloc:ated memory
* Throw out some cached data if necessary
* Forget some old texts if necessary
* Save some items to disk if saving
*
* idle is TRUE if the server has no pending calls. That might be a good time
* to forget old texts.
*/
static char *rcsid = "$Id: disk-end-of-atomic.c,v 0.9 1993/10/10 17:04:05 ceder Exp $";
#include "rcs.h"
USE(rcsid);
#include <stddef.h>
#include "misc-types.h"
#include "kom-types.h"
#include "end-of-atomic.h"
#include "cache.h"
#include "server/smalloc.h"
#include "config.h"
#include "text-garb.h"
#include "disk-cache.h"
long
end_of_atomic( Bool idle )
{
int timeout = TIMEOUT;
static int limit = 0;
free_tmp();
/* FIXME-- make limit_text_stat smarter instead. */
if (limit++ > 100)
{
cache_limit_size();
limit = 0;
}
if ( idle )
if ( garb_text() == FALSE )
timeout = GARBTIMEOUT;
if ( sync_part() == FALSE )
timeout = SYNCTIMEOUT;
return timeout;
}