This is regarding the applicability or suitability of message queue vs. Shared Memory in this situation:
multiple DLLs or shared libraries
each library will try to communicate with My main application DLL or shared library, e.g., the I/P to and O/P from all the DLLs or Shared libraries are to be communicated through my main application's Shared library. These communications are ASYNCHRONOUS.
some of the DLLs or shared libraries, other than my application's .so, will create multiple threads, and output from each such thread needs to be communicated back to my application library. The output from these threads are again ASYNCHRONOUS.
my main application DLL / .so will continue with its other work which is very likely that it communicates with some server over the network and it responds accordingly
The functioning of all other DLLs/ .so's are asynchronous
Q-1: In the above situation which is the best fit ? (I) a message queue , (II) a shared memory ?
Q-2: Any reference or link which enforces synchronization between several shared libraries using shared memory ?