Mercurial > noffle
view src/request.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 |
parents | 32ba1198c6fa |
children | 6f99218719e4 |
line wrap: on
line source
/* request.h Collection of requested articles. $Id: request.h 51 2000-05-05 23:49:38Z uh1763 $ */ #ifndef REQ_H #define REQ_H #if HAVE_CONFIG_H #include <config.h> #endif #include "common.h" /* Is request for message msgId from server serv already recorded? This function has no error detection facility. On error, FALSE is returned. Nevertheless, errors are logged. */ Bool Req_contains( const char *serv, const char *msgId ); /* Add request for message "msgId" from server "serv". Return TRUE if successful. */ Bool Req_add( const char *serv, const char *msgId ); /* Remove request for message msgIg from server serv. This function does not return any errors. Nevertheless, they are logged. */ void Req_remove( const char *serv, const char *msgId ); /* Begin iteration through all messages requested from one server. Return TRUE if there are any requests. Save first message ID in msgId. On error, it is logged, and FALSE is returned. */ Bool Req_first( const char *serv, Str msgId ); /* Continue iteration. Return TRUE on success, FALSE when there are no more requests. Save message ID in msgId. On error, it is logged, and FALSE is returned. */ Bool Req_next( Str msgId ); /* Get exclusive access to the request files. Refresh cache as necessary. */ Bool Req_open(void); /* Write changes to disk */ void Req_close(void); #endif