summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/server.c')
-rw-r--r--src/server/server.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/server/server.c b/src/server/server.c
index 2988732..1b17d12 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -1,3 +1,6 @@
+/**** POSIX *******************************************************************/
+#include <string.h>
+
/**** RELABSD *****************************************************************/
#include <relabsd/config.h>
#include <relabsd/debug.h>
@@ -16,6 +19,8 @@ static int initialize
struct relabsd_server server [const restrict static 1]
)
{
+ int err;
+
if
(
relabsd_physical_device_open
@@ -47,6 +52,18 @@ static int initialize
return -2;
}
+ err =
+ pthread_mutex_init(&(server->mutex), (const pthread_mutexattr_t *) NULL);
+
+ if (err != 0)
+ {
+ RELABSD_FATAL
+ (
+ "Could not initialize the server's mutex: %s.",
+ strerror(err)
+ );
+ }
+
if
(
(
@@ -59,7 +76,7 @@ static int initialize
relabsd_virtual_device_destroy(&(server->virtual_device));
relabsd_physical_device_close(&(server->physical_device));
- return -3;
+ return -4;
}
return 0;
@@ -78,6 +95,8 @@ static void finalize (struct relabsd_server server [const static 1])
relabsd_virtual_device_destroy(&(server->virtual_device));
relabsd_physical_device_close(&(server->physical_device));
+
+ (void) pthread_mutex_destroy(&(server->mutex));
}
/******************************************************************************/