开始

DWPTP中是否还有ThreadState

从DWPTP中取出一个ThreadState

u45_seg0 u45_seg1

ThreadState是否

持有DWPT?

u48_seg0 u48_seg1
u49_seg0 u49_seg1 u49_seg2 u49_seg3 u49_seg4

删除队列是否为flushingQueue?

u52_seg0 u52_seg1
u53_seg0 u53_seg1 u53_seg2 u53_seg3 u53_seg4

DWPT是否收集过文档?

ThreadState是否为

flushPending状态?

设置ThreadState为

flushPending状态

u59_seg0 u59_seg1

取出当前ThreadState

持有的DWPT

u61_seg0 u61_seg1

更新拖延状态

u64_seg0 u64_seg1
u65_seg0 u65_seg1 u65_seg2 u65_seg3 u65_seg4
u66_seg0 u66_seg1 u66_seg2 u66_seg3

u68_seg0 u68_seg1

重置ThreadState

u72_seg0 u72_seg1

DWPT添加到fullFlushBuffer

u75_seg0 u75_seg1

u77_seg0 u77_seg1
u78_seg0 u78_seg1 u78_seg2 u78_seg3

synchronized开始

替换全局删除队列

u81_seg0 u81_seg1
u82_seg0 u82_seg1 u82_seg2 u82_seg3

获取ThreadState的锁

释放ThreadState的锁

结束

blockedFlushes中的DWPT

添加到flushQueue中

fullFlushBuffer中的DWPT

添加到flushQueue中

u88_seg0 u88_seg1

更新拖延状态

u90_seg0 u90_seg1
u91_seg0 u91_seg1

置全局变量

fullFLush为true

u93_seg0 u93_seg1
u94_seg0 u94_seg1