[uClinux-dev] Threading and synchronization questions

Jan Ringoš tringi at mx-3.cz
Thu Feb 26 21:03:09 EST 2009

Hi everyone,

I am pretty excited to be able start programming microcontrollers running 
uClinux, but as a Windows programmer you can imagine my confusion and 
surprise that some things that work completely differently. I have already 
googled some and did my research, so I am mostly looking for confirmation 
(or rejection) of my following thoughts:

1) If properly synchronized I can access data of other processes.

2) Is atomic write to a pipes up to PIPE_BUF guaranteed on uClinux?

3) There is no practical distinction between process and thread in uClinux 
as there is in Windows world.

4) Can pthread mutexes be used across vfork/exec sub-processes?
In documentation to pthreads they say that the pthread_mutex can be used to 
synchronize threads but not processes. But I see no difference between 
thread and process in uClinux. What am I missing?

5) There is no dynamicaly-loaded-library (DLL, or .so, or whatever) support.

6) Vfork does not copy any data/code from the old process to the new one, or 
does it? The real question is, will some pointer carried to the new process 
always point to a data in the old process.

7) For data variety, I decided to use a SQLite database. In my current 
design, there will be more separate processes running and using the 
database. But the footprint of the SQLite is relatively large. Provided that 
my code will comply to the threading limitations documented by SQLite, can I 
have it loaded just in single core process, and accessed by other processes? 
SQLite uses pthreads for synchronization.

8) If pthread_mutex cannot be used across processes, is there an 

9) Or is my approach of multiple processes otherwise flawed? My intension is 
to minimize memory and disk footprint by including only components necessary 
for particular application. Have I other option than to write big monolithic 

Thank you a lot in advance,

Jan Ringoš, jan at ringos.cz
www.ringos.cz, tringi.mx-3.cz 

More information about the uClinux-dev mailing list