safer stop-early logic in tilecache
Don't actually stop the tilecache loop early, since that could deadlock, instead just stop fetching from the pipeline. see https://github.com/libvips/libvips/pull/2424
This commit is contained in:
parent
e7889ff8e1
commit
99724e6097
@ -632,8 +632,7 @@ vips_tile_cache_gen( VipsRegion *or,
|
||||
*/
|
||||
work = vips_tile_cache_ref( cache, r );
|
||||
|
||||
while( work &&
|
||||
!*stop ) {
|
||||
while( work ) {
|
||||
/* Search for data tiles: easy, we can just paste those in.
|
||||
*/
|
||||
for(;;) {
|
||||
@ -679,10 +678,14 @@ vips_tile_cache_gen( VipsRegion *or,
|
||||
if( cache->threaded )
|
||||
g_mutex_unlock( cache->lock );
|
||||
|
||||
result = vips_region_prepare_to( in,
|
||||
tile->region,
|
||||
&tile->pos,
|
||||
tile->pos.left, tile->pos.top );
|
||||
/* Don't compute if we've seen an error
|
||||
* previously.
|
||||
*/
|
||||
if( !result )
|
||||
result = vips_region_prepare_to( in,
|
||||
tile->region,
|
||||
&tile->pos,
|
||||
tile->pos.left, tile->pos.top );
|
||||
|
||||
if( cache->threaded ) {
|
||||
VIPS_GATE_START( "vips_tile_cache_gen: "
|
||||
|
Loading…
x
Reference in New Issue
Block a user