New webrev: http://cr.opensolaris.org/~bpytlik/ips-5171-v2/
jmr wrote: > J - isn't the problem that self.time_until_next_check can be negative > in is_check_required() if the machine has been off for a few days and > then gets turned back on. The correct solution would seem to be to set > the self.time_until_next_check = self.refresh_period once you know a > check is needed. > > def is_check_required(self): > : > if self.time_until_next_check <= 0: > self.time_until_next_check = self.refresh_period > return True > else: > return False > > The call in: > > def do_next_check(self): > : > if self.time_until_next_check > DAILY_SECS: > next_check_time = DAILY_SECS > > Is ok if the refresh period is > a day and you have the period set to > weekly and the machine is up for more than a day then this ensures the > is_check_required() gets fired everyday the machine is up. > > JR > > > This should be fine as [EMAIL PROTECTED] wrote: >> Negative time doesn't make sense. If next_check_time is <= 0, isn't it >> time to check right now? >> >> If the time_until_next_check is < refresh_period, I think we should >> simply perform the check and then set next_check to now + >> refresh_period. I think that would make this a little easier to follow. >> >> -j >> >> >> On Mon, Nov 17, 2008 at 06:01:14PM -0800, Brock Pytlik wrote: >> >>> Ok, then since we've observed time can be negative, that's the right >>> delay in this situation? Would replacing 0 with 10 make everyone happy? >>> >>> Brock >>> >>> jmr wrote: >>> >>>> Brock if we ever hit next_check_time < 0 and set next_check_time = 0: >>>> >>>> 333 + if next_check_time < 0: >>>> 334 + next_check_time = 0 >>>> >>>> Then you will go into a spin in the call to: >>>> 337 + gobject.timeout_add(0, self.do_next_check) >>>> >>>> This is what was happening in the bug we tracked down last week. >>>> >>>> JR >>>> >>>> Brock Pytlik wrote: >>>> >>>>> Webrev: >>>>> http://cr.opensolaris.org/~bpytlik/ips-5171-v1/ >>>>> >>>>> Bug: >>>>> http://defect.opensolaris.org/bz/show_bug.cgi?id=5171 >>>>> Updatemanager eating 50% of the CPU >>>>> >>>>> This changes so that the next check to check for updates isn't >>>>> scheduled until after the current check for updates happens. >>>>> >>>>> Brock >>>>> _______________________________________________ >>>>> pkg-discuss mailing list >>>>> [email protected] >>>>> http://mail.opensolaris.org/mailman/listinfo/pkg-discuss >>>>> >>> _______________________________________________ >>> pkg-discuss mailing list >>> [email protected] >>> http://mail.opensolaris.org/mailman/listinfo/pkg-discuss >>> > _______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
