Mercurial > noffle
view src/util.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 | 94f2e5607772 |
children | 4e69e9b722ae |
line wrap: on
line source
/* util.h Miscellaneous helper functions. $Id: util.h 248 2001-01-25 11:00:03Z bears $ */ #ifndef UTL_H #define UTL_H #if HAVE_CONFIG_H #include <config.h> #endif #include <signal.h> #if TIME_WITH_SYS_TIME #include <sys/time.h> #include <time.h> #else #if HAVE_SYS_TIME_H #include <sys/time.h> #else #include <time.h> #endif #endif #include "common.h" /* Find first non-whitespace character after <token> tokens in string <line>. Return pointer to end of string, if parsing failed. */ const char * Utl_restOfLn( const char *line, unsigned int token ); void Utl_toLower( Str line ); /* Read a line from string. Return NULL if pos == NULL or no more line to read */ const char * Utl_getLn( Str result, const char *p ); /* Go back to last line. */ const char * Utl_ungetLn( const char *str, const char *p ); /* Read a header line from string. Reads continuation lines if necessary. Line is returned as formatted, including '\n's. Return NULL if pos == NULL or no more line to read. */ const char * Utl_getHeaderLn( Str result, const char *p ); /* Strip white spaces from left and right side. Return pointer to new start. This is within line. */ char * Utl_stripWhiteSpace( char *line ); /* Strip comment from a line. Comments start with '#'. */ void Utl_stripComment( char *line ); /* Write timestamp into <file>. */ void Utl_stamp( Str file ); /* Get time stamp from <file> */ Bool Utl_getStamp( time_t *result, Str file ); /* Put SonOfRFC1036 compliant date string into res. */ void Utl_newsDate( time_t t, Str res ); /* Attempt to parse a SonOfRFC1036 compliant date string. Return -1 on fail. */ time_t Utl_parseNewsDate( const char *s ); void Utl_cpyStr( Str dst, const char *src ); void Utl_cpyStrN( Str dst, const char *src, int n ); void Utl_catStr( Str dst, const char *src ); void Utl_catStrN( Str dst, const char *src, int n ); /* String allocation and copying. */ void Utl_allocAndCpy( char **dst, const char *src ); /* Install signal handler. */ sig_t Utl_installSignalHandler( int sig, sig_t handler ); #endif