From 79475a4742bc28e1737044f2300bcb601e6e10bf Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Thu, 30 Jun 2016 23:14:14 +0200 Subject: lib: robust locking in shared memory and crash recovery This PR enhances the shared memory providing recovery if a process crashes. It adds a SHM_DU_TIMEOUT_MICROS variable, setting an expiration time for SDU's when shared memory is full. If an application doesn't read a blocking SDU within this time, the shared memory will be cleansed of all SDU's for this application and the application's rbuff will be cleared. Some refactoring of the API's. Fixed wrong pthread checks in IRMd. Fixes #13 Fixes #14 --- include/ouroboros/config.h.in | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'include/ouroboros/config.h.in') diff --git a/include/ouroboros/config.h.in b/include/ouroboros/config.h.in index 0dce7acd..6861c6cb 100644 --- a/include/ouroboros/config.h.in +++ b/include/ouroboros/config.h.in @@ -26,13 +26,19 @@ #define PROJECT_NAME "@CMAKE_PROJECT_NAME@" #define PROJECT_VERSION "@PACKAGE_VERSION@" #define INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" -#define _POSIX_C_SOURCE 200112L +#define _POSIX_C_SOURCE 200809L #define IPCP_SHIM_UDP_EXEC "@IPCP_SHIM_UDP_TARGET@" #define IPCP_SHIM_ETH_LLC_EXEC "@IPCP_SHIM_ETH_LLC_TARGET@" #define IPCP_NORMAL_EXEC "@IPCP_NORMAL_TARGET@" #define IPCP_LOCAL_EXEC "@IPCP_LOCAL_TARGET@" #define AP_MAX_FLOWS 256 +#define SHM_DU_BUFF_BLOCK_SIZE sysconf(_SC_PAGESIZE) +#define SHM_DU_MAP_FILENAME "ouroboros_du_map" +#define SHM_BLOCKS_IN_MAP (1 << 14) +#define SHM_DU_TIMEOUT_MICROS 2000 #define DU_BUFF_HEADSPACE 128 #define DU_BUFF_TAILSPACE 0 +#define SHM_AP_RBUFF_PREFIX "ouroboros_rb_" +#define SHM_RBUFF_SIZE (1 << 14) #endif -- cgit v1.2.3