[fpc-devel] about realtime tasks

Daniël Mantione daniel.mantione at freepascal.org
Wed Jan 18 11:51:52 CET 2006



Op Wed, 18 Jan 2006, schreef Stefan Kisdaroczi:

> Hi,
> 
> im currently testing my pascal-bindings for the Xenomai [1] realtime extension  
> for Linux. Xenomai allows to program hard realtime programs in userspace. 
> Its a normal library used with $linklib.
> 
> Its working so far, but using multiple tasks, there are some strange effects 
> (exceptions,hangs).
> From the freepascal documentation:
> "Although it is not forbidden to do so, it is not recommended to use 
> system-specific threading routines: ..."
> So I do not really wonder about the effects, but I need a way to make this 
> work.
> 
> As far as I understood, I need to include the unit cthreads, which i have 
> done. If i call rt_task_create, the xenomai-library makes a clone() call to 
> create the new task, so this is a system-specific threading routine. It works 
> so far, but...
> 
> When I include cthreads and (manually?) initialize the ThreadManager, would it 
> be ok ? Or do I need to call CreateThread() and in the thread 
> rt_task_shadow(), which makes the current Pascal-created thread a realtime 
> task? Are any system-specific blocking calls a problem?
> 
> Any suggestions? Can be linux specific, as xenomai is for linux only.

Well, the cthreads unit uses libpthread, for which I don't know if it will 
interfere with your xenomai library. If it doesn't it should work without 
trouble.

Daniël


More information about the fpc-devel mailing list