пока чисто тестовая задача:
Имею приложение с двумя потоками
код их одинаков - sleep(10) в конечном цикле...
однако первый имеет thread.priority := tpidle и стартует на sleep(1000) раньше...
второй же имеет thread.priority := tpnormal (или tphigher, tpTimeCritical - все пробовал)...
под Windows получаю, то что теоритически верно - tpHigher поток в ходе работы догоняет, перегоняет и завершается раньше tpIdle потока... под Linux (SUSE Ent Serv 10) - с учетом погрешностей, tpIdle поток завершается на теже sleep(1000) раньше... тоесть приоритеты потоков на их скорость не влияют... а хотелось бы...
И не должно? Причины? Идеи?
Добавлено спустя 2 минуты 12 секунд:
Lazarus 0.9.24 + FPC 2.2.0
Приоритет потоков под Linux...
Модератор: Модераторы
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Причина, судя по всему, вот в этом (rtl\unix\cthreads.pp начиная со строки 357):
Добавлено спустя 2 минуты 4 секунды:
И еще я краем уха слышал, что без рутовых прав в Линуксе приоритет не поменяешь.
Код: Выделить всё
function CThreadSetPriority (threadHandle : TThreadID; Prio: longint): boolean; {-15..+15, 0=normal}
begin
{$Warning ThreadSetPriority needs to be implemented}
end;
function CThreadGetPriority (threadHandle : TThreadID): Integer;
begin
{$Warning ThreadGetPriority needs to be implemented}
end;
Добавлено спустя 2 минуты 4 секунды:
И еще я краем уха слышал, что без рутовых прав в Линуксе приоритет не поменяешь.
И еще я краем уха слышал, что без рутовых прав в Линуксе приоритет не поменяешь.
В сторону уменьшения приоритета - без проблем.
Спасибо
Действительно
Я как-то такого не ожидал... искал в самом линухе подвох...
о сроках "имплементации" краем уха не слышали?
Действительно
Я как-то такого не ожидал... искал в самом линухе подвох...
о сроках "имплементации" краем уха не слышали?
Честно признаться, даже не понимаю, что подразумевается под словом имплементация?
Гугель выдал что то про правоотношения каких то государств...
Гугель выдал что то про правоотношения каких то государств...
"...needs to be implemented" 
тоесть когда будет реализовано?.. если будет...
P.S. А пока нашел решение через libc + nice()
тоесть когда будет реализовано?.. если будет...
P.S. А пока нашел решение через libc + nice()
