Просмотр исходного кода

coroipcc_dispatch_get(): Fix --enable-small-memory-footprint support

Signed-off-by: Jerome Flesch <jerome.flesch@netasq.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
(cherry picked from commit 795aa5e24cee83c88b8a6ea3a3fd06e754f55010)
Jerome Flesch 14 лет назад
Родитель
Сommit
82d214cbde
1 измененных файлов с 12 добавлено и 1 удалено
  1. 12 1
      lib/coroipcc.c

+ 12 - 1
lib/coroipcc.c

@@ -849,6 +849,17 @@ coroipcc_dispatch_get (
 		return (error);
 	}
 
+	if (shared_mem_dispatch_bytes_left (ipc_instance) > (ipc_instance->dispatch_size/2)) {
+		/*
+		 * Notify coroipcs to flush any pending dispatch messages
+		 */
+		res = ipc_sem_post (ipc_instance->control_buffer, SEMAPHORE_REQUEST_OR_FLUSH_OR_EXIT);
+		if (res != CS_OK) {
+			error = CS_ERR_LIBRARY;
+			goto error_put;
+		}
+	}
+
 	*data = NULL;
 
 	ufds.fd = ipc_instance->fd;
@@ -883,7 +894,7 @@ coroipcc_dispatch_get (
 #endif
 	assert (error == CS_OK);
 
-	if (shared_mem_dispatch_bytes_left (ipc_instance) > 500000) {
+	if (shared_mem_dispatch_bytes_left (ipc_instance) > (ipc_instance->dispatch_size/2)) {
 		/*
 		 * Notify coroipcs to flush any pending dispatch messages
 		 */