OPENBUS-3006 busservices não para após shutdown
A condição de self.sweeper ~= true não era satisfeita para que o código do shutdown chamasse o unschedule do sweeper. Uma situação exemplo era que logo após iniciar o busservices, a self.sweeper era marcada como true mas poderia demorar por algum escalonamento antes de self.sweeper assumir o valor da cothread corrente e dormir pelo próximo ciclo de renovação. Essa correção faz com que a self.sweeper assuma o quanto antes o valor da cothread corrente e só então durma pelo primeiro ciclo de renovação. Assim se ela estiver dormindo enquanto o shutdown é invocado, ela será removida da fila de prontos. Caso ela já tenha acordado, o shutdown vai marcá-la como false para parar o laço da renovação de leasing.
Showing
+6 -6
Please register or sign in to comment