Improve callback scheduling.
Improve callback scheduling.

Collect all timeouts to be run before running any of them; this
prevents starvation when a slow callback reschedules itself.

Call time() again before setting poll_timeout to avoid scheduling
anomalies with slow callbacks.

Closes #947.

shaohung001/tornado,VShangxiao/tornado,tianyk/tornado-research,whip112/tornado,whip112/tornado,icejoywoo/tornado,legnaleurc/tornado,elijah513/tornado,mivade/tornado,ydaniv/tornado,MjAbuz/tornado,ajdavis/tornado,ColorFuzzy/tornado,Callwoola/tornado,Snamint/tornado,Fydot/tornado,coderhaoxin/tornado,mlyundin/tornado,ZhuPeng/tornado,mr-ping/tornado,Snamint/tornado,jsjohnst/tornado,codeb2cc/tornado,gitchs/tornado,nordaux/tornado,MjAbuz/tornado,obsh/tornado,Geoion/tornado,ovidiucp/tornado,erichuang1994/tornado,yangkf1985/tornado,lujinda/tornado,cyrusin/tornado,Windsooon/tornado,pombredanne/tornado,akalipetis/tornado,NoyaInRain/tornado,ubear/tornado,importcjj/tornado,304471720/tornado,leekchan/tornado_test,Lancher/tornado,dongpinglai/my_tornado,Windsooon/tornado,InverseLina/tornado,fengshao0907/tornado,z-fork/tornado,futurechallenger/tornado,ms7s/tornado,insflow/tornado,anjan-srivastava/tornado,jarrahwu/tornado,hzruandd/tornado,pombredanne/tornado,frtmelody/tornado,codeb2cc/tornado,leekchan/tornado_test,felixonmars/tornado,kevinge314gh/tornado,kaushik94/tornado,bdarnell/tornado,anjan-srivastava/tornado,ydaniv/tornado,Drooids/tornado,jehiah/tornado,elelianghh/tornado,djt5019/tornado,mlyundin/tornado,johan--/tornado,zhuochenKIDD/tornado,mlyundin/tornado,kevinge314gh/tornado,cyrusin/tornado,Batterfii/tornado,yangkf1985/tornado,hhru/tornado,coderhaoxin/tornado,zguangyu/tornado,gitchs/tornado,Polyconseil/tornado,gwillem/tornado,elijah513/tornado,MjAbuz/tornado,AlphaStaxLLC/tornado,eXcomm/tornado,akalipetis/tornado,arthurdarcet/tornado,hzruandd/tornado,erichuang1994/tornado,jampp/tornado,codecov/tornado,Acidburn0zzz/tornado,Fydot/tornado,jparise/tornado,ZhuPeng/tornado,codeb2cc/tornado,cyrilMargaria/tornado,andyaguiar/tornado,ydaniv/tornado,ymero/tornado,kevinge314gh/tornado,Polyconseil/tornado,eXcomm/tornado,ListFranz/tornado,Batterfii/tornado,xinyu7/tornado,nordaux/tornado,jarrahwu/tornado,ubear/tornado,arthurdarcet/tornado,eklitzke/tornado,wxhzk/tornado-1,shaohung001/tornado,hhru/tornado,ifduyue/tornado,chenxiaba/tornado,yangkf1985/tornado,wsyzxcn/tornado,wsyzxcn/tornado,ListFranz/tornado,johan--/tornado,codecov/tornado,legnaleurc/tornado,yuezhonghua/tornado,ColorFuzzy/tornado,Callwoola/tornado,Lancher/tornado,elijah513/tornado,zhuochenKIDD/tornado,obsh/tornado,whip112/tornado,jsjohnst/tornado,elelianghh/tornado,AlphaStaxLLC/tornado,LTD-Beget/tornado,allenl203/tornado,pombredanne/tornado,VShangxiao/tornado,kevinge314gh/tornado,lsanotes/tornado,shaohung001/tornado,wujuguang/tornado,importcjj/tornado,djt5019/tornado,ymero/tornado,kaushik94/tornado,mlyundin/tornado,zhuochenKIDD/tornado,Drooids/tornado,dongpinglai/my_tornado,djt5019/tornado,yuezhonghua/tornado,nordaux/tornado,akalipetis/tornado,sxfmol/tornado,kippandrew/tornado,Aaron1992/tornado,MjAbuz/tornado,fengshao0907/tornado,djt5019/tornado,hzruandd/tornado,lsanotes/tornado,chenxiaba/tornado,icejoywoo/tornado,Acidburn0zzz/tornado,codeb2cc/tornado,z-fork/tornado,shashankbassi92/tornado,sxfmol/tornado,yangkf1985/tornado,cyrusin/tornado,kippandrew/tornado,wsyzxcn/tornado,sevenguin/tornado,wechasing/tornado,anandology/tornado,eXcomm/tornado,gwillem/tornado,Snamint/tornado,arthurdarcet/tornado,leekchan/tornado_test,304471720/tornado,felixonmars/tornado,mr-ping/tornado,ymero/tornado,ubear/tornado,tianyk/tornado-research,kippandrew/tornado,jparise/tornado,frtmelody/tornado,kaushik94/tornado,shaohung001/tornado,erichuang1994/tornado,0x73/tornado,allenl203/tornado,drewmiller/tornado,Aaron1992/tornado,ListFranz/tornado,Fydot/tornado,SuminAndrew/tornado,0xkag/tornado,elelianghh/tornado,bywbilly/tornado,0x73/tornado,lujinda/tornado,jparise/tornado,dsseter/tornado,tianyk/tornado-research,sxfmol/tornado,futurechallenger/tornado,nordaux/tornado,ZhuPeng/tornado,anjan-srivastava/tornado,anjan-srivastava/tornado,legnaleurc/tornado,wxhzk/tornado-1,djt5019/tornado,dsseter/tornado,kangbiao/tornado,ubear/tornado,wujuguang/tornado,ovidiucp/tornado,jsjohnst/tornado,eXcomm/tornado,Geoion/tornado,BencoLee/tornado,jampp/tornado,bdarnell/tornado,ListFranz/tornado,LTD-Beget/tornado,tianyk/tornado-research,hzruandd/tornado,tornadoweb/tornado,Aaron1992/tornado,kippandrew/tornado,bywbilly/tornado,codeb2cc/tornado,obsh/tornado,insflow/tornado,BencoLee/tornado,kippandrew/tornado,sxfmol/tornado,0xkag/tornado,importcjj/tornado,johan--/tornado,jampp/tornado,noxiouz/tornado,lilydjwg/tornado,Windsooon/tornado,insflow/tornado,ZhuPeng/tornado,Lancher/tornado,felixonmars/tornado,wxhzk/tornado-1,kippandrew/tornado,sevenguin/tornado,AlphaStaxLLC/tornado,shashankbassi92/tornado,Acidburn0zzz/tornado,wxhzk/tornado-1,SuminAndrew/tornado,Polyconseil/tornado,jehiah/tornado,liqueur/tornado,hzruandd/tornado,hhru/tornado,LTD-Beget/tornado,mehmetkose/tornado,johan--/tornado,obsh/tornado,whip112/tornado,futurechallenger/tornado,jarrahwu/tornado,304471720/tornado,dsseter/tornado,elijah513/tornado,xinyu7/tornado,Batterfii/tornado,AlphaStaxLLC/tornado,jarrahwu/tornado,VShangxiao/tornado,icejoywoo/tornado,codecov/tornado,ydaniv/tornado,Fydot/tornado,zguangyu/tornado,Polyconseil/tornado,LTD-Beget/tornado,importcjj/tornado,eklitzke/tornado,mehmetkose/tornado,gwillem/tornado,bdarnell/tornado,jsjohnst/tornado,ovidiucp/tornado,dongpinglai/my_tornado,Callwoola/tornado,QuanZag/tornado,takeshineshiro/tornado,codecov/tornado,Fydot/tornado,ifduyue/tornado,QuanZag/tornado,elijah513/tornado,bdarnell/tornado,Drooids/tornado,Snamint/tornado,xinyu7/tornado,nbargnesi/tornado,chenxiaba/tornado,NoyaInRain/tornado,NoyaInRain/tornado,gitchs/tornado,xinyu7/tornado,fengsp/tornado,ovidiucp/tornado,obsh/tornado,eklitzke/tornado,mlyundin/tornado,304471720/tornado,Drooids/tornado,bywbilly/tornado,anandology/tornado,tornadoweb/tornado,gitchs/tornado,0xkag/tornado,sunjeammy/tornado,fengshao0907/tornado,VShangxiao/tornado,Lancher/tornado,elijah513/tornado,yuyangit/tornado,elelianghh/tornado,insflow/tornado,fengshao0907/tornado,BencoLee/tornado,QuanZag/tornado,wsyzxcn/tornado,yuezhonghua/tornado,wechasing/tornado,mivade/tornado,erichuang1994/tornado,jonashagstedt/tornado,liqueur/tornado,yuyangit/tornado,ms7s/tornado,zhuochenKIDD/tornado,liqueur/tornado,Fydot/tornado,felixonmars/tornado,mivade/tornado,SuminAndrew/tornado,ydaniv/tornado,pombredanne/tornado,lilydjwg/tornado,wxhzk/tornado-1,whip112/tornado,nordaux/tornado,fengsp/tornado,VShangxiao/tornado,ColorFuzzy/tornado,Geoion/tornado,tianyk/tornado-research,InverseLina/tornado,Geoion/tornado,cyrusin/tornado,drewmiller/tornado,jarrahwu/tornado,ms7s/tornado,eklitzke/tornado,drewmiller/tornado,ajdavis/tornado,lilydjwg/tornado,ifduyue/tornado,chenxiaba/tornado,304471720/tornado,yuyangit/tornado,anjan-srivastava/tornado,fengshao0907/tornado,mr-ping/tornado,coderhaoxin/tornado,Acidburn0zzz/tornado,legnaleurc/tornado,zguangyu/tornado,shaohung001/tornado,InverseLina/tornado,ColorFuzzy/tornado,erichuang1994/tornado,importcjj/tornado,LTD-Beget/tornado,yangkf1985/tornado,obsh/tornado,Polyconseil/tornado,wujuguang/tornado,AlphaStaxLLC/tornado,QuanZag/tornado,Drooids/tornado,fengsp/tornado,NoyaInRain/tornado,futurechallenger/tornado,Callwoola/tornado,nbargnesi/tornado,tornadoweb/tornado,dongpinglai/my_tornado,ovidiucp/tornado,xinyu7/tornado,chenxiaba/tornado,sunjeammy/tornado,liqueur/tornado,johan--/tornado,ymero/tornado,yuyangit/tornado,sevenguin/tornado,Windsooon/tornado,ydaniv/tornado,lsanotes/tornado,Snamint/tornado,andyaguiar/tornado,Geoion/tornado,sunjeammy/tornado,ColorFuzzy/tornado,z-fork/tornado,ifduyue/tornado,Snamint/tornado,NoyaInRain/tornado,pombredanne/tornado,sevenguin/tornado,QuanZag/tornado,cyrilMargaria/tornado,yuyangit/tornado,anandology/tornado,eXcomm/tornado,sxfmol/tornado,kaushik94/tornado,kangbiao/tornado,Batterfii/tornado,insflow/tornado,mr-ping/tornado,jsjohnst/tornado,Drooids/tornado,yuezhonghua/tornado,takeshineshiro/tornado,coderhaoxin/tornado,BencoLee/tornado,kaushik94/tornado,z-fork/tornado,shashankbassi92/tornado,ZhuPeng/tornado,noxiouz/tornado,Callwoola/tornado,Windsooon/tornado,kangbiao/tornado,SuminAndrew/tornado,jparise/tornado,ColorFuzzy/tornado,mivade/tornado,InverseLina/tornado,MjAbuz/tornado,jonashagstedt/tornado,codeb2cc/tornado,pombredanne/tornado,ubear/tornado,jonashagstedt/tornado,wsyzxcn/tornado,cyrusin/tornado,nbargnesi/tornado,coderhaoxin/tornado,sunjeammy/tornado,lujinda/tornado,BencoLee/tornado,kangbiao/tornado,elelianghh/tornado,noxiouz/tornado,wxhzk/tornado-1,ubear/tornado,liqueur/tornado,mr-ping/tornado,0xkag/tornado,xinyu7/tornado,tornadoweb/tornado,Lancher/tornado,mehmetkose/tornado,jparise/tornado,sevenguin/tornado,anandology/tornado,akalipetis/tornado,dsseter/tornado,noxiouz/tornado,MjAbuz/tornado,mehmetkose/tornado,mehmetkose/tornado,jonashagstedt/tornado,futurechallenger/tornado,yuezhonghua/tornado,ymero/tornado,Batterfii/tornado,wechasing/tornado,kevinge314gh/tornado,mehmetkose/tornado,cyrilMargaria/tornado,jonashagstedt/tornado,0x73/tornado,insflow/tornado,allenl203/tornado,cyrusin/tornado,ifduyue/tornado,lujinda/tornado,bywbilly/tornado,dongpinglai/my_tornado,bywbilly/tornado,VShangxiao/tornado,LTD-Beget/tornado,bdarnell/tornado,noxiouz/tornado,frtmelody/tornado,zhuochenKIDD/tornado,arthurdarcet/tornado,yangkf1985/tornado,coderhaoxin/tornado,mlyundin/tornado,kangbiao/tornado,fengsp/tornado,fengshao0907/tornado,wsyzxcn/tornado,drewmiller/tornado,hzruandd/tornado,InverseLina/tornado,sevenguin/tornado,icejoywoo/tornado,lsanotes/tornado,arthurdarcet/tornado,liqueur/tornado,leekchan/tornado_test,ymero/tornado,kevinge314gh/tornado,lujinda/tornado,cyrilMargaria/tornado,shashankbassi92/tornado,lsanotes/tornado,NoyaInRain/tornado,Batterfii/tornado,jparise/tornado,gwillem/tornado,erichuang1994/tornado,QuanZag/tornado,SuminAndrew/tornado,jehiah/tornado,BencoLee/tornado,arthurdarcet/tornado,leekchan/tornado_test,andyaguiar/tornado,felixonmars/tornado,gwillem/tornado,takeshineshiro/tornado,dsseter/tornado,wechasing/tornado,ms7s/tornado,zguangyu/tornado,andyaguiar/tornado,jampp/tornado,dsseter/tornado,Polyconseil/tornado,gitchs/tornado,yuezhonghua/tornado,takeshineshiro/tornado,anandology/tornado,zguangyu/tornado,jsjohnst/tornado,ms7s/tornado,z-fork/tornado,fengsp/tornado,hhru/tornado,djt5019/tornado,akalipetis/tornado,wsyzxcn/tornado,Callwoola/tornado,nbargnesi/tornado,z-fork/tornado,shashankbassi92/tornado,takeshineshiro/tornado,Acidburn0zzz/tornado,futurechallenger/tornado,0x73/tornado,304471720/tornado,chenxiaba/tornado,akalipetis/tornado,zhuochenKIDD/tornado,dongpinglai/my_tornado,mr-ping/tornado,eklitzke/tornado,lsanotes/tornado,elelianghh/tornado,drewmiller/tornado,zguangyu/tornado,shaohung001/tornado,InverseLina/tornado,jampp/tornado,jampp/tornado,frtmelody/tornado,gwillem/tornado,hhru/tornado,0x73/tornado,cyrilMargaria/tornado,andyaguiar/tornado,icejoywoo/tornado,ovidiucp/tornado,ms7s/tornado,ajdavis/tornado,noxiouz/tornado,kangbiao/tornado,bywbilly/tornado,allenl203/tornado,frtmelody/tornado,legnaleurc/tornado,takeshineshiro/tornado,ajdavis/tornado,whip112/tornado,ajdavis/tornado,anjan-srivastava/tornado,lilydjwg/tornado,jehiah/tornado,Geoion/tornado,mivade/tornado,andyaguiar/tornado,drewmiller/tornado,nbargnesi/tornado,sxfmol/tornado,ListFranz/tornado,sunjeammy/tornado,0xkag/tornado,wujuguang/tornado,AlphaStaxLLC/tornado,importcjj/tornado,lujinda/tornado,Windsooon/tornado,Acidburn0zzz/tornado,allenl203/tornado,Aaron1992/tornado,jarrahwu/tornado,ZhuPeng/tornado,johan--/tornado,fengsp/tornado,eXcomm/tornado,cyrilMargaria/tornado,wujuguang/tornado,Aaron1992/tornado,shashankbassi92/tornado,jehiah/tornado,anandology/tornado,ListFranz/tornado,wechasing/tornado,nbargnesi/tornado,gitchs/tornado,frtmelody/tornado,icejoywoo/tornado,wechasing/tornado