Boost logo

Boost Users :

Subject: [Boost-users] Problem with boost::interprocess::ipc::message_queue
From: Ming Lu (ming.lu_at_[hidden])
Date: 2011-04-01 03:57:24


Hello Everybody,

i used boost::interprocess::ipc::message_queue (boost 1.40) in my
project. it works perfect. after upgrade from boost 1.40.0 to 1.46.0 i
do have a problem with the message_queue.

my usage of message_queue:

Receiver:
          message_queue message_queue(open_or_create,
strQueueName.c_str(), nMessagesNumber, nMessageLength);
/ ....

          bReceiveSucces = message_queue.try_receive(pchPuffer,
m_nMessageLength, nRecievedSize, nPriority);/

Sender:
         message_queue message_queue(open_only,
m_strMessageQueueName.c_str());
         message_queue.try_send(strMessage.c_str(), nMessageLength,
nPriority);

(the Receiver is running before Sender has be started.)

i readed the content in the output windows from Visual Studio 2008 (my
building envoriment) during start of my application:
*
1.40.0:*

    /'MessageQueueReceiver.exe': Loaded
    'C:\data\20_NoBackup\Project\MessageQueueSender\Debug\MessageQueueReceiver.exe',
    Symbols loaded./
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll'/
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll'/
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll'/
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll'/
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\secur32.dll'/
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcr90d.dll',
    Symbols loaded./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcp90d.dll',
    Symbols loaded./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\shimeng.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\shimeng.dll'/

the receiver-application loaded these dlls and waiting for the input
message from the sender-application..

*1.46.0:*

    /MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\wbem\wbemprox.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\wbem\wbemcomn.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\ws2_32.dll', Symbols loaded (source information
    stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\ws2help.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\wbem\wbemsvc.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\wbem\fastprox.dll'/
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\msvcp60.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\ntdsapi.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Loaded 'C:\WINDOWS\system32\dnsapi.dll'/
    /'MessageQueueReceiver.exe': Loaded
    'C:\WINDOWS\system32\wldap32.dll', Symbols loaded (source
    information stripped)./
    /'MessageQueueReceiver.exe': Unloaded
    'C:\WINDOWS\system32\wbem\fastprox.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\ntdsapi.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\wldap32.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\dnsapi.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\msvcp60.dll'/
    /'MessageQueueReceiver.exe': Unloaded
    'C:\WINDOWS\system32\wbem\wbemsvc.dll'/
    /'MessageQueueReceiver.exe': Unloaded
    'C:\WINDOWS\system32\wbem\wbemprox.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\ws2_32.dll'/
    /'MessageQueueReceiver.exe': Unloaded 'C:\WINDOWS\system32\ws2help.dll'/
    /'MessageQueueReceiver.exe': Unloaded
    'C:\WINDOWS\system32\wbem\wbemcomn.dll'/
    ......................
    ......................
    ......................

the receiver-application loaded these complettly different Dlls (in
compare with 1.40) and unloaded them repeatly (endless).

if man compare the cruise of the message_queue, is 1.46.0 about 4 times
slower as 1.40.0.

do somebody know? is it a bug or just the sideeffect from the
changement? how can i use the message_queue correctly?

thanks a lot for any suggestion

best regards
Ming Lu



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net