question: determines whether all the tasks are done . if there are no more tasks scheduled for process , and no ongoing tasks , it is impossible that new work will arrive , so the spidering is done . concode_field_sep int spiderTasksDone concode_elem_sep Map blocked concode_elem_sep Set assignedSpiderTasks concode_elem_sep Set assignedThinkerTasks concode_elem_sep List thinkerTasks concode_elem_sep int blockedCount concode_elem_sep int thinkerTasksDone concode_elem_sep List fetchTasks concode_field_sep int getJobCount concode_elem_sep int getBlockedCount concode_elem_sep void flagDone concode_elem_sep WorkerTask getThinkerTask concode_elem_sep DecideOnSpideringTask[] unblock concode_elem_sep void schedule concode_elem_sep int getJobsDone concode_elem_sep WorkerTask getFethTask concode_elem_sep int getThinkerJobCount concode_elem_sep int getSpiderJobCount concode_elem_sep void block concode_elem_sep int getAssignedCount concode_elem_sep int getThinkerJobsDone concode_elem_sep int getSpiderJobsDone
target: boolean function ( ) { return ( fetchTasks . size ( ) == 0 && thinkerTasks . size ( ) == 0 && assignedSpiderTasks . size ( ) == 0 && assignedThinkerTasks . size ( ) == 0 && blocked . size ( ) == 0 ) ; }