summaryrefslogtreecommitdiffstats
path: root/runtime/srUtils.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-06-24 10:52:06 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-06-24 10:52:06 +0200
commit8eb10a7105dce1dc3ffc44b291de73d82bd04799 (patch)
treee3c70740599127009b6009a2846d8274e67c8900 /runtime/srUtils.h
parent675d46f5b59f64e378968baa5e0dec6810090287 (diff)
parentc53ca3a23429e750aeb6ab1c3600ae8ecb3c8ac6 (diff)
downloadrsyslog-8eb10a7105dce1dc3ffc44b291de73d82bd04799.tar.gz
rsyslog-8eb10a7105dce1dc3ffc44b291de73d82bd04799.tar.bz2
rsyslog-8eb10a7105dce1dc3ffc44b291de73d82bd04799.zip
Merge branch 'omfile'
Conflicts: ChangeLog
Diffstat (limited to 'runtime/srUtils.h')
-rw-r--r--runtime/srUtils.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/runtime/srUtils.h b/runtime/srUtils.h
index bfce4cbb..b37559cf 100644
--- a/runtime/srUtils.h
+++ b/runtime/srUtils.h
@@ -92,6 +92,7 @@ void srSleep(int iSeconds, int iuSeconds);
char *rs_strerror_r(int errnum, char *buf, size_t buflen);
int decodeSyslogName(uchar *name, syslogName_t *codetab);
int getSubString(uchar **ppSrc, char *pDst, size_t DstSize, char cSep);
+rsRetVal getFileSize(uchar *pszName, off_t *pSize);
/* mutex operations */
/* some macros to cancel-safe lock a mutex (it will automatically be released
@@ -124,4 +125,17 @@ int getSubString(uchar **ppSrc, char *pDst, size_t DstSize, char cSep);
d_pthread_mutex_unlock(mut); \
pthread_setcancelstate(iCancelStateSave, NULL); \
}
+
+/* The unconditional versions of the macro always lock the mutex. They are preferred in
+ * complex scenarios, where the simple ones might get mixed up by multiple calls.
+ */
+#define DEFVARS_mutexProtection_uncond\
+ int iCancelStateSave
+#define BEGIN_MTX_PROTECTED_OPERATIONS_UNCOND(mut) \
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &iCancelStateSave); \
+ d_pthread_mutex_lock(mut);
+#define END_MTX_PROTECTED_OPERATIONS_UNCOND(mut) \
+ d_pthread_mutex_unlock(mut); \
+ pthread_setcancelstate(iCancelStateSave, NULL);
+
#endif