/* $Id: log.c,v 1.3 2004/03/25 00:05:02 jmuelmen Exp $ */ #include #include #include "libsurf.h" #include "log.h" #include "log_int.h" static pthread_mutex_t _mut; static const char *file_names[] = { "volta.log", "voltd.log", "curra.log", "currd.log", "temp.log" }; int log_lock () { int ret = pthread_mutex_lock(&_mut); if (ret) perror("Locking logging mutex"); return ret; } int log_unlock () { int ret = pthread_mutex_unlock(&_mut); if (ret) perror("Unlocking logging mutex"); return ret; } int log_init () { /* initialize the mutex */ if (pthread_mutex_init(&_mut, NULL)) perror("Initializing log mutex"); return 0; } int log_sync () { int i = 0; int ret; char mod[STRLEN]; /* open all the log files */ log_lock(); while (!surf_mod_tbl_get_mod(mod, i++)) { /* modules left in the table */ int j = 0; /* printf("sizeof(file_names) == %d", sizeof(file_names)); */ while (j < sizeof(file_names) / sizeof(char *)) { /* files left to be had */ /* printf("logfile_open_file(%s, %s);\n", */ /* mod, file_names[j]); */ if (ret = logfile_open_file(mod, file_names[j])) { log_unlock(); return ret; } ++j; } } log_unlock(); /* remember to acquire the lock before you write! */ return 0; }