[ostree] static-delta: limit the number of writes in process to 1



commit 4991e9ab6a2adefa78a08b4582b62b2b093a319c
Author: Giuseppe Scrivano <gscrivan redhat com>
Date:   Fri Jan 16 19:21:27 2015 +0100

    static-delta: limit the number of writes in process to 1
    
    This will avoid too many open files at the same time that could cause
    an EMFILE error.
    
    Signed-off-by: Giuseppe Scrivano <gscrivan redhat com>
    (cherry picked from commit bc092b06f0e34e93f7d6102957bf55fd7ffd1b9e)

 .../ostree-repo-static-delta-processing.c          |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/src/libostree/ostree-repo-static-delta-processing.c 
b/src/libostree/ostree-repo-static-delta-processing.c
index 13abc6c..a663b84 100644
--- a/src/libostree/ostree-repo-static-delta-processing.c
+++ b/src/libostree/ostree-repo-static-delta-processing.c
@@ -265,6 +265,11 @@ _ostree_static_delta_part_execute_raw (OstreeRepo      *repo,
       guint8 opcode;
       OstreeStaticDeltaOperation *op;
 
+      /* Limit the number of outstanding writes to 1 to prevent too many open files
+         at the same time.  */
+      while (state->outstanding_content_writes > 1)
+        g_main_context_iteration (state->content_writing_context, TRUE);
+
       if (state->object_start)
         {
           if (!open_output_target (state, cancellable, error))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]