[ekg2-devel] RFD: Korzystanie z idle-handlerow i ich przyszlosc
Jakub Zawadzki
darkjames w darkjames.ath.cx
Czw, 10 Lip 2008, 23:09:58 CEST
Czolem,
ostatnio zauwazylem ze peres zaczal korzystac z idle handlerow przy
scrollowaniu opisu, oraz dla autoawayow.
Moje kilka groszy:
Ogolnie idle pisalem dla gtk, zeby petla obslugujaca gtk czesciej
sie wywolywala, tymsamym w ekg_loop() wstawilem kod:
if (idles) {
stv.tv_sec = 0;
if (stv.tv_usec > 20000)
stv.tv_usec = 20000;
/* max 50 times per second for idler.. i think
* it's ok */
}
wiec jak jest jakiekolwiek idle aktywne, do select()'a zamiast:
max_timeout = 1s
jest max_timeout = 1/50s
wiec idle sa (na razie) od tego zeby ekg_loop() sie wywolywalo czesciej
Jak chcemy zrobic idle ktore sie bedzie rzadziej wykonywac, to mozna
zrobic priorytety.
np. IDLE_PRIORITY_NONE ktore by nie modyfikowalo timeouta selecta.
IDLE_PRIORITY_LOW z f = ok. 10 Hz
IDLE_PRIORITY_NORMAL ktore by wywolywalo ekg_loop() z f = ok. 25 Hz, a
IDLE_PRIORITY_HIGH z f = ok. 50 Hz (tak jak jest)
i moznaby wtedy zmigrowac na to timera day_changed, albo odswiezanie
statusbara w ncurses.
tylko jak dla mnie jak chcemy zeby sie cos wykonywalo _dokladnie_ raz na sekunde (+-)
to imho najlepiej stworzyc timera z 1s delayem.
Howgh.
Więcej informacji o liście dyskusyjnej ekg2-devel