Страница 1 из 1

Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 17:27:02
The Chase
пока чисто тестовая задача:
Имею приложение с двумя потоками
код их одинаков - 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

Re: Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 18:20:12
Sergei I. Gorelkin
Причина, судя по всему, вот в этом (rtl\unix\cthreads.pp начиная со строки 357):
Код: Выделить всё
    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 секунды:
И еще я краем уха слышал, что без рутовых прав в Линуксе приоритет не поменяешь.

Re: Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 18:46:22
serg_iv
И еще я краем уха слышал, что без рутовых прав в Линуксе приоритет не поменяешь.

В сторону уменьшения приоритета - без проблем.

Re: Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 19:23:37
The Chase
Спасибо
Действительно :)
Я как-то такого не ожидал... искал в самом линухе подвох...

о сроках "имплементации" краем уха не слышали? :)

Re: Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 20:25:15
serg_iv
Честно признаться, даже не понимаю, что подразумевается под словом имплементация?
Гугель выдал что то про правоотношения каких то государств...

Re: Приоритет потоков под Linux...

СообщениеДобавлено: 29.12.2008 20:32:08
The Chase
"...needs to be implemented" :)

тоесть когда будет реализовано?.. если будет...

P.S. А пока нашел решение через libc + nice()