libvips/libvips
John Cupitt 4e0a433c24 openslide2vips uses multiple parallel osr reads
open a separate openside_t for every read thread to try to get some
parallelism in decode

works, but no faster overall, since we don't ensure that each osr tile
is only fetched once --- threads need to synchronise and not overlap

we need:

- some way to get tile geometry from osr

- a threaded tilecache aligned to the osr tile boundaries

the tilecache needs to have locks and semaphores on every tile,
something like:

class tilecache:
  def generate(region):
    # lock all tiles we need, make a list of the ones that need
    # calculating
    work = []
    for tile in region:
      tile.lock()
      if tile.nodata():
        work.append(tile)
	tile.set(:in-progress)

    # calculate all empty tiles we need
    for tile in work:
      tile.calculate()
      tile.set(:data)

    # some tiles may be being made by another thread,
    # wait for them to be done
    for tile in region:
      if tile.in-progress:
        tile.wait()

    # should all have data now, paste to output and unlock
    for tile in region:
      tile.paste(output)
      tile.unlock()

    return output
2012-10-05 09:12:54 +01:00
..
arithmetic make everything LGPL2.1+ 2012-09-17 11:52:32 +01:00
cimg fix gcc4.6 warnings 2011-10-18 17:11:04 +01:00
colour Merge remote-tracking branch 'origin/7.28' 2012-04-10 16:53:03 +01:00
conversion make everything LGPL2.1+ 2012-09-17 11:52:32 +01:00
convolution fix compiler warnings 2012-08-14 12:43:54 +01:00
deprecated Merge remote-tracking branch 'origin/7.30' 2012-10-03 09:40:03 +01:00
foreign openslide2vips uses multiple parallel osr reads 2012-10-05 09:12:54 +01:00
freq_filt clean up fft, reduce memuse 2012-01-28 11:53:45 +00:00
histograms_lut cleanups 2012-02-28 14:17:02 +00:00
include dzsave can write zoomify and google maps 2012-10-03 14:26:59 +01:00
inplace fix compiler warnings 2012-08-14 12:43:54 +01:00
iofuncs dzsave can write zoomify and google maps 2012-10-03 14:26:59 +01:00
morphology hackery to get goi working 2011-12-31 18:22:42 +00:00
mosaicing improvements to tiff/png load in vips7 2012-07-12 14:50:56 +01:00
other hackery to get goi working 2011-12-31 18:22:42 +00:00
resample make everything LGPL2.1+ 2012-09-17 11:52:32 +01:00
video Merge remote-tracking branch 'origin/7.26' 2012-01-14 14:00:41 +00:00
dummy.c
Makefile.am small fixes 2012-01-11 15:00:37 +00:00