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)
This commit is contained in:
Giuseppe Scrivano 2015-01-16 19:21:27 +01:00 committed by Colin Walters
parent 638431045c
commit 4991e9ab6a
1 changed files with 5 additions and 0 deletions

View File

@ -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))