/* Get the buffer cache. */ static im_buffer_cache_t * buffer_cache_get( void ) { im_buffer_cache_t *cache; #ifdef HAVE_THREADS if( !(cache = g_private_get( thread_buffer_cache_key )) ) { cache = buffer_cache_new(); g_private_set( thread_buffer_cache_key, cache ); } #else /*!HAVE_THREADS*/ if( !thread_buffer_cache ) thread_buffer_cache = buffer_cache_new(); cache = thread_buffer_cache; #endif /*HAVE_THREADS*/ return( cache ); }
/* Get the buffer cache. */ static VipsBufferCache * buffer_cache_get( void ) { VipsBufferCache *cache; if( !(cache = g_private_get( thread_buffer_cache_key )) ) { cache = buffer_cache_new(); g_private_set( thread_buffer_cache_key, cache ); } return( cache ); }
static VipsBufferCache * buffer_cache_get( VipsImage *im ) { VipsBufferThread *buffer_thread = buffer_thread_get(); VipsBufferCache *cache; if( !(cache = (VipsBufferCache *) g_hash_table_lookup( buffer_thread->hash, im )) ) { cache = buffer_cache_new( buffer_thread, im ); g_hash_table_insert( buffer_thread->hash, im, cache ); } g_assert( cache->thread == g_thread_self() ); return( cache ); }