view src/fetchlist.h @ 165:8ea6b5ddc5a5 noffle

[svn] * src/lock.h,src/lock.c,src/noffle.c: Add lazy lock release. Only release the lock and close the databases if (a) another process signals us SIGUSR1 indicating it wants the lock, or (b) it is explicitly requested by a call to new function Lock_syncDatabases(). When waiting for the lock, SIGUSR1 the holding process every second. This is all an attempt to minimise the number of times we need to close and open the database. When (ha!) the database is replaced by something that can handle multiple simultaneous writers (with appropriate locking) this won't be necessary.
author bears
date Thu, 25 Jan 2001 13:38:31 +0000 (2001-01-25)
parents adf0af5152f7
children f8a91e2b4060
line wrap: on
line source
/*
  fetchlist.h

  List of groups that are to be fetched presently.

  $Id: fetchlist.h 67 2000-05-12 17:19:38Z enz $
*/

#ifndef FETCHLIST_H
#define FETCHLIST_H

#if HAVE_CONFIG_H
#include <config.h>
#endif

#include "common.h"

typedef enum { FULL, THREAD, OVER } FetchMode;

void
Fetchlist_read( void );

/* Invalidates any indices (list is sorted by name before saving) */
Bool
Fetchlist_write( void );

int
Fetchlist_size( void );

Bool
Fetchlist_contains( const char *name );

/* Get element number index. */
Bool
Fetchlist_element( const char **name, FetchMode *mode, int idx );

/* Add entry. Invalidates any indices. Returns TRUE if new entry, FALSE if
   entry was overwritten. */
Bool
Fetchlist_add( const char *name, FetchMode mode );

/* Remove entry. Invalidates any indices. Returns FALSE if not found. */
Bool
Fetchlist_remove( const char *name );

#endif