aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/mds-registry/globals.h4
-rw-r--r--src/mds-registry/mds-registry.c13
2 files changed, 12 insertions, 5 deletions
diff --git a/src/mds-registry/globals.h b/src/mds-registry/globals.h
index bd83ff4..110077d 100644
--- a/src/mds-registry/globals.h
+++ b/src/mds-registry/globals.h
@@ -55,7 +55,7 @@ extern hash_table_t reg_table;
/**
* Reusable buffer for data to send
*/
-extern char* send_buffer; /* TODO free on danger */
+extern char* send_buffer;
/**
* The size of `send_buffer`
@@ -75,7 +75,7 @@ extern size_t running_slaves;
/**
* List of running slaves
*/
-extern linked_list_t slave_list; /* TODO pack on danger */
+extern linked_list_t slave_list;
/**
* Mutex for slave data
diff --git a/src/mds-registry/mds-registry.c b/src/mds-registry/mds-registry.c
index f753f26..741423c 100644
--- a/src/mds-registry/mds-registry.c
+++ b/src/mds-registry/mds-registry.c
@@ -152,12 +152,19 @@ int postinitialise_server(void)
*/
int master_loop(void)
{
- int rc = 1;
+ int rc = 1, r;
while (!reexecing && !terminating)
{
- int r = mds_message_read(&received, socket_fd);
- if (r == 0)
+ if (danger)
+ {
+ danger = 0;
+ free(send_buffer), send_buffer = NULL;
+ send_buffer_size = 0;
+ with_mutex (slave_mutex, linked_list_pack(&slave_list););
+ }
+
+ if (r = mds_message_read(&received, socket_fd), r == 0)
if (r = handle_message(), r == 0)
continue;