Board.KolibriOS.org

Official KolibriOS board
It is currently Mon May 20, 2019 5:54 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2
Author Message
PostPosted: Mon May 27, 2013 8:24 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Mario_r4 wrote:
Раньше (до ревизии 3534) без этого кода иконки не во всех случаях перерисовывались. Сейчас возможно и не нужно. Если не будет багрепоротов, значит все нормально.

Решение проблем методом "а давайте попробуем немного подождать, вдруг поможет" - почти всегда плохая идея. Оно даже может работать на отдельно взятой машине, но стоит взять машину послабее и нагрузить её посильнее - рискует сломаться в неожиданных местах. Если проблема в том, что программе нужно видеть глобальную переменную в момент события, а сама глобальная переменная постоянно меняется - а так оно в данном случае и есть, - то решение должно быть "сохраним глобальную переменную в момент события где-нибудь в локальном месте, чтобы глобальная переменная могла спокойно меняться, а программа читала локальное место". r3536 - это отнюдь не только удаление вызова change_task.
http://bash.im/quote/217723 wrote:
Hsilgos :Я на это втыкаю долго... И иду спрашивать, как это работает?
Hsilgos :Ведь ясно же, что это ошибка.
Hsilgos :На что мне чувак говорит : ставлю у потока более высокий приоритет и благодаря этому объект УСПЕВАЕТ вычитать содержимое переменной
Hsilgos :А ты говоришь - "Архитектура"... "Планирование"...
Hsilgos :Индийцам до нас далеко
Hsilgos :Чисто по-русски. Успеть хапнуть, пока не пришел писец...

_________________
Сделаем мир лучше!


Top
   
PostPosted: Mon May 27, 2013 9:00 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
CleverMouse wrote:
r3536 - это отнюдь не только удаление вызова change_task.

Я вообще-то смотрел лог SVN если чо. Может я не настолько умен и сообразителен, но я не имбецил. Не буду спорить, что идея не самая лучшая, более того - это дрянная идея. Да и вообще 90% моего кода откровенное говно. Однако никто не делает некоторые вещи - совсем не делают. Если так раздражает я могу более вообще не трогать код ядра, так как идеи мои тоже на 90% говно. Будем честно смотреть правде в глаза. Почти 10 лет моих потуг, так и не сделали из меня хорошего программиста. Все результаты достигались тупым упорством и хождением по граблям. Потому буду делать как 99% посещающих форум - зайти и посмотреть, нет ли чего новенького, похвалить хорошистов, поругать плохишей или вообще промолчать. Потреблять в общем. Извини, что отнял твое время бессмысленным и пустым замечанием. Постараюсь далее быть чаще в read-only. Успехов!

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Mon May 27, 2013 9:06 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Mario_r4, спасибо.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Wed May 29, 2013 2:57 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
CleverMouse
Неясен такой момент:
- если один из пользовательских процессов уже отработал свой квант и был принудительно переключен,
- тогда будет ли включаться IDLE, или управление вернется в пользовательское кольцо?


Top
   
PostPosted: Wed May 29, 2013 3:42 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
art_zh, если поток был принудительно переключён, он остаётся активным, на следующие кольца планировщик смотреть не будет, до IDLE дело не дойдёт.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Wed May 29, 2013 5:16 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
тогда вроде всё по-уму.
IDLE играет только если все дружно скинут карты.


Top
   
PostPosted: Fri Jun 07, 2013 8:09 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
r3615+r3617 вносят дополнение: теперь при поступлении IRQ, отличного от таймера, также вызывается планировщик, но со специальным флагом "смотри только на потоки, которые строго более приоритетны, чем текущий". Флаг также меняет логику продвижения очереди: если пользовательский поток A упорно работал и был прерван по таймеру, то следующим пользовательским потоком будет B, следующий в кольце после A; если тот же пользовательский поток A упорно работал и был прерван по другому прерыванию, то следующим пользовательским потоком останется A - возможно, после того, как вмешавшийся ядерный поток что-нибудь сделает.

_________________
Сделаем мир лучше!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited