Skip to content
  • Ell's avatar
    buffer: use gegl_tile_read_{lock,unlock}() when reading tiles · 7fe8beab
    Ell authored
    Use the new gegl_tile_read_lock() and gegl_tile_read_unlock()
    functions, added in the previous commit, before/after reading from
    a tile in a potentially-multithreaded context.
    
    See the previous commit for an explanation of why this is
    necessary.
    
    Note, in particular, that this may make 1x1 gegl_buffer_get()s
    (and NEAREST gegl_buffer_sample()) more expensive, however, NEAREST
    sampler objects amortize the cost of these functions by only
    locking/unlocking the sampler's hot-tile when switching tiles.  As
    a result, a concurrent write to the same buffer may block while the
    sampler object is alive.  We assume that buffers may not be
    written-to while there are active sampler objects constructed for
    them (which can already lead to stale data in the samplers).
    7fe8beab