diff options
Diffstat (limited to 'src/mds-registry/mds-registry.c')
-rw-r--r-- | src/mds-registry/mds-registry.c | 13 |
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; |