disable sequential skipahead

this was causing some problems on very-many-core systems

still need to update operation flags and disable seq mode for
insert/extract/etc.
This commit is contained in:
John Cupitt 2014-02-25 11:12:41 +00:00
parent 0ef0328396
commit 4d85011a51
3 changed files with 9 additions and 8 deletions

View File

@ -144,8 +144,8 @@ vips_sequential_generate( VipsRegion *or,
return( -1 ); return( -1 );
} }
if( r->top > sequential->y_pos && if( r->top > sequential->y_pos /* &&
sequential->y_pos > 0 ) { sequential->y_pos > 0 */ ) {
/* We have started reading (y_pos > 0) and this request is for /* We have started reading (y_pos > 0) and this request is for
* stuff beyond that, stall for a while to give other * stuff beyond that, stall for a while to give other
* threads time to catch up. * threads time to catch up.

View File

@ -893,8 +893,8 @@ read_jpeg_generate( VipsRegion *or,
int y; int y;
#ifdef DEBUG #ifdef DEBUG
printf( "read_jpeg_generate: line %d, %d rows\n", printf( "read_jpeg_generate: %p line %d, %d rows\n",
r->top, r->height ); g_thread_self(), r->top, r->height );
#endif /*DEBUG*/ #endif /*DEBUG*/
VIPS_GATE_START( "read_jpeg_generate: work" ); VIPS_GATE_START( "read_jpeg_generate: work" );

View File

@ -180,7 +180,7 @@ sink_memory_area_allocate_fn( VipsThreadState *state, void *a, gboolean *stop )
VipsRect image; VipsRect image;
VipsRect tile; VipsRect tile;
VIPS_DEBUG_MSG( "sink_memory_area_allocate_fn:\n" ); VIPS_DEBUG_MSG( "sink_memory_area_allocate_fn: %p\n", g_thread_self() );
/* Is the state x/y OK? New line or maybe new buffer or maybe even /* Is the state x/y OK? New line or maybe new buffer or maybe even
* all done. * all done.
@ -231,7 +231,8 @@ sink_memory_area_allocate_fn( VipsThreadState *state, void *a, gboolean *stop )
*/ */
wstate->area = memory->area; wstate->area = memory->area;
VIPS_DEBUG_MSG( " allocated %d x %d:\n", tile.left, tile.top ); VIPS_DEBUG_MSG( " %p allocated %d x %d:\n",
g_thread_self(), state->pos.left, state->pos.top );
/* Add to the number of writers on the area. /* Add to the number of writers on the area.
*/ */
@ -260,13 +261,13 @@ sink_memory_area_work_fn( VipsThreadState *state, void *a )
int result; int result;
VIPS_DEBUG_MSG( "sink_memory_area_work_fn: %p %d x %d\n", VIPS_DEBUG_MSG( "sink_memory_area_work_fn: %p %d x %d\n",
state, state->pos.left, state->pos.top ); g_thread_self(), state->pos.left, state->pos.top );
result = vips_region_prepare_to( state->reg, memory->region, result = vips_region_prepare_to( state->reg, memory->region,
&state->pos, state->pos.left, state->pos.top ); &state->pos, state->pos.left, state->pos.top );
VIPS_DEBUG_MSG( "sink_memory_area_work_fn: %p result = %d\n", VIPS_DEBUG_MSG( "sink_memory_area_work_fn: %p result = %d\n",
state, result ); g_thread_self(), result );
/* Tell the allocator we're done. /* Tell the allocator we're done.
*/ */