Вверх ↑
Ответов: 4622
Рейтинг: 746
#1: 2016-10-05 11:09:40 ЛС | профиль | цитата
Galkov писал(а):
Если ты отвечаешь за базар - не используй потоки!

Вообще-то, если ты "отвечаешь за базар", то используй потоки правильно. Например, в данном случае было бы достаточно

function Simple_proc(l:pointer):Integer; {$ifdef F_P}stdcall;{$endif}

...

rc.handle := {$ifdef F_P}CreateThread{$else}BeginThread{$endif}rc.handle(0, 0, @Simple_proc, rc, 0, id);
А если бы кто-то не кастрировал штатный FPC, то и без {$ifdef} обошлось бы.

Но, по правде, не факт, что во время написания компонента (да и сейчас) кто-то знал об этих нюансах. Я, например, это выяснил только после многочасовой отладки TCP компонентов, которые используют много потоков (тем более, что глюки практически не проявляются на однопроцессорных компьютерах). Кроме того, в KOL же есть свой класс потока - почему его использования избежали здесь? Предполагаю - потому что глюки (как минимум, в FPC).
карма: 26

0
Редактировалось 4 раз(а), последний 2016-10-05 11:14:58