From 6d1d6fd16cf652ad1c0d0b3fb6b439ee635a5628 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Fri, 14 Oct 2016 09:31:12 +0100 Subject: [PATCH] oops --- TODO | 69 ------------------------------------------------------------ 1 file changed, 69 deletions(-) diff --git a/TODO b/TODO index 10b9f438..715f4c8f 100644 --- a/TODO +++ b/TODO @@ -1,72 +1,3 @@ -- getpoint() doesn't use a worker, it just calls vips_region_prepare() - directly - - we should crop to a mem buffer instead - -- rework buffer.c, it's getting ugly - - how about getting rid of buffercache for non-worker threads, it won't be - very useful - - instead, global buffers have no buffercache and their lifetime is just - managed by the regions they are on - - no reserve list, just discard them on unref - - shouldwe use atomic stuff for the buffer ref count? - - buffer_dump has: - - if( buffer->im && - buffer->buf && - buffer->cache ) { - printf( "buffer %p, %.3g MB\n", - buffer, buffer->bsize / (1024 * 1024.0) ); - *alive += buffer->bsize; - } - else if( buffer->im && - buffer->buf && - !buffer->cache ) - *reserve += buffer->bsize; - else - printf( "buffer craziness!\n" ); - - is this right? - - I think we now have three states: - - global buffer (not on any cache, undone) - - buffer->ref_count >= 1 - buffer->im - buffer->buf - !buffer->cache - !buffer->done (since all done buffers must be on a cache buffers list) - - buffer published on a cache (done) - - buffer->ref_count >= 1 - buffer->im - buffer->buf - buffer->cache - buffer->done - - buffer held in reserve on a thread, ready for reuse - - buffer->ref_count == 0 - buffer->im - buffer->buf - buffer->cache - !buffer->done - - vips_buffer_done() on a global buffer takes ownership and publishes to this - thread's public list - - what if ref_count > 1? is this possible? - - vips_buffer_undone() relinquishes ownership and makes it global - - - not sure about utf8 error messages on win - strange: