I am developing a shared library(.so) and dll. I have a global variable which is updated in multiple threads. So I have mutex lock for synchronization.
I am not clear whether global data in shared library is shared across process. If it is then I need to use semaphores for synchronization. As I understand global variables are part of data segment so I wanted to understand how dll manages the global data across processes. Any information w.r.t. dll format and segment will be helpful.
Thanks.
By default, no, global variables are not shared across processes.
However, you can use a data segment (data_seg) in order to share global variables across processes. You can find more information on MSDN in the article titled “How do I share data in my DLL with an application or with other DLLs?“