notes on seq removal
This commit is contained in:
parent
f45f6ad52f
commit
6691e07d72
42
TODO
42
TODO
@ -1,3 +1,45 @@
|
||||
- we currently have
|
||||
|
||||
* seq is on line 1000
|
||||
* thread1 asks for line 2000 and blocks on seq->ready
|
||||
* thread2 asks for line 2001 and also blocks
|
||||
* thread1 times out and skips ahead to 2000
|
||||
* thread1 wakes up thread2
|
||||
* thread2 reads 2001
|
||||
|
||||
we could have
|
||||
|
||||
* seq is on line 1000
|
||||
* thread1 asks for line 2000 and blocks on seq->ready
|
||||
* thread2 asks for line 2001
|
||||
* thread2 sees that another thread is blocked earlier, so there has
|
||||
probably been a skip
|
||||
* thread2 sets a "skipahead" flag, then wakes up thread1 and sleeps
|
||||
itself
|
||||
* thread1 wakes, skips to 2000, wakes thread2 and returns
|
||||
* thread2 wakes, reads 2001, and returns
|
||||
|
||||
we could keep a list of all the blocked threads, sorted by y request, then
|
||||
only unblock the lowest numbered one when the whole threadpool is waiting
|
||||
|
||||
this sounds like the safest idea
|
||||
|
||||
we could get rid of the first tile is single-threaded hack as well
|
||||
|
||||
argh no, we may not ever get more than one thread blocked on a seq
|
||||
|
||||
we just have to get rid of seq and rely on a larger buffer behind the
|
||||
processing point
|
||||
|
||||
use sinkdisk / sinkmemory to limit the amount that threads can get out of
|
||||
sync ... we must stop starting new threads if an old thread is taking too
|
||||
long to produce its tile
|
||||
|
||||
sinkdisk will do this automatically, since it only keeps two lines of tiles
|
||||
|
||||
sinkmemory will need to have something added
|
||||
|
||||
|
||||
- vips linecache has access there twice!
|
||||
|
||||
$ vips linecache
|
||||
|
Loading…
Reference in New Issue
Block a user