aboutsummaryrefslogtreecommitdiffstats
path: root/src/mds-registry/mds-registry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mds-registry/mds-registry.c')
-rw-r--r--src/mds-registry/mds-registry.c13
1 files changed, 10 insertions, 3 deletions
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;