[Lazarus] Threads and Libraries (dll and so)

Antonio Fortuny a.fortuny at sitasoftware.lu
Fri Jan 17 13:16:56 CET 2014


Le 17/01/2014 12:53, Michael Van Canneyt a écrit :
>
>
> On Fri, 17 Jan 2014, Antonio Fortuny wrote:
>
>> Hi All.
>>
>> Maybe not a Lazarus/FPC specific question but development whill be 
>> done using Lazarus/FPC.
>> I wonder if I can build an application (service) having multiple 
>> threads running (Indy TCP/IP server, multiple connections) and every 
>> thread calls some functions in a library (dll on Windows, .so on Linux)
>> I can imagine that if every thread loads dynamically the library it 
>> should work as I assume that a library shares its code among all 
>> callers (processes ?) but each instance has its own data segment tied 
>> tp the calling process (thread ?).
>
> The data segment is tied to the process, not to the thread.
>
> So global variables in the DLL are shared by all threads of the 
> calling process.
> If you define threadvars in the DLL, they will normally be specific to 
> threads of the calling program (just as they would be if the library 
> created the thread).
Ok, got it. The library has to be made thread safe as well. This was 
already in my mind.
Tnaks Michael.

Antonio.

>
> Michael.
>
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>



---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com





More information about the Lazarus mailing list