[fpc-devel] Suggestion: reference counted objects

Giuliano Colla giuliano.colla at fastwebnet.it
Sun Sep 21 11:34:24 CEST 2014

Il 21/09/2014 05:51, Hans-Peter Diettrich ha scritto:
> Giuliano Colla schrieb:
>> I might, for example, tell you that my company has been successfully 
>> implementing since more than 30 years a class of applications for the 
>> control of industrial processes, with hundreds of threads running 
>> simultaneously in a multi-CPU environment,
> [...]
> IMO realtime applications require an realtime OS, providing all 
> required means of process synchronization and communication. Ordinary 
> systems and developers should be happy with primitive threads, doing 
> their work in the background and exiting when done.

Our class of applications takes advantage of a distributed intelligence 
model. IOW a number of CPU's working in parallel, each one running his 
own real-time multitasking environment. They're organized in a 
hierarchical tree and almost all of them take advantage of dedicated 
real-time OS's, up to the root of the tree, which governs the full 
process, and also provides human interface, data collection, connection 
with factory network and data-bases, remote connection for assistance, 
debugging and upgrading.

The top level, until recent times, was provided by a Linux box, with a 
real-time patched kernel (Adeos-Ipipe). The result was a real-time 
nanokernel, running the application real-time tasks, and having Linux as 
its idle task. On Linux side, the visual portion was provided by Kylix.

But, with the increase of CPU speed, and the the significant 
improvements of Linux kernel latency, it's now become possible to get 
rid of the foreign real-time patch, and to take advantage directly of 
Linux kernel thread scheduling, without a significant performance loss.

> It's good to know that FPC allows to implement and manage more complex 
> parallel processing, if I understand you and Boian correctly?

FPC comes into play with the latest evolution I described above, because 
all the high level functions (such as user interface, data collection, 
etc.) are being handled using Lazarus for the visual functions, and a 
number of FPC threads for the rest. While Kylix did provide a more 
suitable (and less buggy :-( ) widgetset, synchronization of the main 
thread with FPC/Lazarus  is significantly better.


More information about the fpc-devel mailing list