[gegl] buffer: in the swap backend, improve reading/writing stat flags
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] buffer: in the swap backend, improve reading/writing stat flags
- Date: Sun, 15 Mar 2020 21:22:21 +0000 (UTC)
commit be55d7f66337fd9b5795fab2aa899444a4eec0d1
Author: Ell <ell_se yahoo com>
Date: Sun Mar 15 23:20:32 2020 +0200
buffer: in the swap backend, improve reading/writing stat flags
gegl/buffer/gegl-tile-backend-swap.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/gegl/buffer/gegl-tile-backend-swap.c b/gegl/buffer/gegl-tile-backend-swap.c
index c66cd2914..58d424f29 100644
--- a/gegl/buffer/gegl-tile-backend-swap.c
+++ b/gegl/buffer/gegl-tile-backend-swap.c
@@ -620,6 +620,8 @@ gegl_tile_backend_swap_write (ThreadParams *params)
g_atomic_pointer_add (&total_uncompressed, +params->size);
}
+ writing = TRUE;
+
if (out_offset != offset)
{
if (lseek (out_fd, offset, SEEK_SET) < 0)
@@ -631,16 +633,12 @@ gegl_tile_backend_swap_write (ThreadParams *params)
out_offset = offset;
}
- writing = TRUE;
-
while (to_be_written > 0)
{
gint wrote;
wrote = write (out_fd, data, to_be_written);
if (wrote <= 0)
{
- writing = FALSE;
-
g_message ("unable to write tile data to self: "
"%s (%d/%d bytes written)",
g_strerror (errno), wrote, to_be_written);
@@ -662,6 +660,8 @@ gegl_tile_backend_swap_write (ThreadParams *params)
return;
error:
+ writing = FALSE;
+
g_atomic_pointer_add (&total_uncompressed, -params->size);
gegl_tile_backend_swap_free_block (params->block);
@@ -812,10 +812,14 @@ gegl_tile_backend_swap_entry_read (GeglTileBackendSwap *self,
g_mutex_lock (&read_mutex);
+ reading = TRUE;
+
if (in_offset != offset)
{
if (lseek (in_fd, offset, SEEK_SET) < 0)
{
+ reading = FALSE;
+
g_mutex_unlock (&read_mutex);
g_warning ("unable to seek to tile in buffer: %s", g_strerror (errno));
@@ -824,8 +828,6 @@ gegl_tile_backend_swap_entry_read (GeglTileBackendSwap *self,
in_offset = offset;
}
- reading = TRUE;
-
to_be_read = entry->block->size;
while (to_be_read > 0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]