开始
DWPTP中是否还有ThreadState?
从DWPTP中取出一个ThreadState
是
ThreadState是否
持有DWPT?
否
删除队列是否为flushingQueue?
否
是
DWPT是否收集过文档?
ThreadState是否为
flushPending状态?
设置ThreadState为
flushPending状态
取出当前ThreadState
持有的DWPT
否
更新拖延状态
是
是
是
重置ThreadState
否
DWPT添加到fullFlushBuffer
否
synchronized开始
替换全局删除队列
获取ThreadState的锁
释放ThreadState的锁
结束
blockedFlushes中的DWPT
添加到flushQueue中
fullFlushBuffer中的DWPT
添加到flushQueue中
更新拖延状态
置全局变量
fullFLush为true