[zeromq-dev] zmq_ctx_destroy() stocks forever when statically built on Windows

Pieter Hintjens ph at imatix.com
Sat Dec 22 13:08:54 CET 2012


The full source code is not helpful for diagnosing this; what we
really need is a reproducible minimal case in C, so we can tell
whether the problem is in libzmq, the C++ binding, or elsewhere.

-Pieter

On Sat, Dec 22, 2012 at 11:08 AM, M.S. Babaei <ace.of.zerosync at gmail.com> wrote:
> Hi,
>
> Unfortunately I'm no C programmer. But I'll provide you the full source code
> of my client if it helps:
>
> client.hpp / ZeroMQ C++ Bindings
> http://pastebin.com/7c7JPTtp
> client.cpp / ZeroMQ C++ Bindings
> http://pastebin.com/1Xmuthky
>
> client.hpp / ZeroMQ C-Bindings
> http://pastebin.com/8jP7uvCS
> client.cpp / ZeroMQ C-Bindings
> http://pastebin.com/Uajb0ivD
>
> Both versions work fine when we build them dynamically, the problem occurs
> when we build them
> statically to dll-bind with UDK:
>
> Building ZeroMQ dynamically (Windows / VC++ 2010)
> http://pastebin.com/iqN4ZzZ8
>
> Building ZeroMQ statically for dll-binding with UDK
> http://pastebin.com/1jh9BtsB
>
>
> http://udn.epicgames.com/Three/DLLBind.html
>
> Actually I've built "Boost", "Crypto++", "SQLite", "CppDB" statically using
> these settings
> for dll-binding with UDK and all of them are working just fine.
>
>
> Regards,
> M.S. Babaei
>
>
>
> On Sat, Dec 22, 2012 at 11:31 AM, Pieter Hintjens <ph at imatix.com> wrote:
>>
>> Hi,
>>
>> Can you make a pure C test case that reproduces the problem?
>>
>> -Pieter
>>
>> On Wed, Dec 19, 2012 at 1:25 PM, M.S. Babaei <ace.of.zerosync at gmail.com>
>> wrote:
>> > Hi Folks,
>> >
>> > I built ZeroMQ 3.2.2 on windows both static and dynamic release/debug
>> > versions.
>> > I use the C++ wrapper (zmq.hpp) from Github.
>> > Both my client and server are running on the same machine (Windows 7)
>> > and I
>> > built them with MSVC++ 10.
>> > The dynamic version of the library works just fine for both client and
>> > server.
>> >
>> > But I have to use the static version for one of my clients because it's
>> > a
>> > game written on top of UDK.
>> > We use the native code using this method:
>> > http://udn.epicgames.com/Three/DLLBind.html
>> > And we have built all libraries statically with our code because of the
>> > limitations.
>> >
>> > Now the problem is, whenever we want to close the context the game won't
>> > exit and it stocks forever.
>> > I thought maybe it's a bug in the C++ wrapper of ZeroMQ
>> > then I decided to use the C bindings directly.
>> >
>> > This is piece of our code:
>> > http://pastebin.com/Xpw0e1TK
>> >
>> > Since it's unsafe to delete void* pointers is there any way to stop the
>> > context which doesn't respect ZMQ_LINGERE.
>> > Even simple code like this won't exit gracefully (no connect, no
>> > message):
>> > http://pastebin.com/KbyvHCr9
>> >
>> > But this one exits cleanly, which of course it's useless:
>> > http://pastebin.com/GLHMH0fS
>> >
>> > It's worth noting that I have just one socket in my app. And this code
>> > works
>> > In my testbed which links dynamically.
>> > Of course the static version works just fine, but the only glitch is the
>> > exiting part. The game stocks forever at
>> > rc = zmq_ctx_destroy(m_context); and the CPU usage varies between
>> > 25-50%.
>> >
>> > And this is my log from building ZeroMQ statically for UDK dll-binding:
>> > http://pastebin.com/1jh9BtsB
>> >
>> >
>> > Thanks in Advance,
>> > M.S. Babaei
>> >
>> >
>> >
>> > --
>> > We are the puppets and fate the puppeteer / This is not a metaphor, but
>> > a
>> > truth sincere / On this stage, fate for sometime our moves steer / Into
>> > the
>> > chest of non-existence, one by one disappear.
>> > -- Omar Khayyam
>> >
>> > ما لعبتکانیم و فلک لعبت باز / از روی حقیقتی نه از روی مجاز / یک چند در
>> > این
>> > بساط بازی کردیم / رفتیم به صندوق عدم یک یک باز
>> > -- حکیم عمر خیام
>> >
>> >
>> >
>> > _______________________________________________
>> > zeromq-dev mailing list
>> > zeromq-dev at lists.zeromq.org
>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
>
> --
> We are the puppets and fate the puppeteer / This is not a metaphor, but a
> truth sincere / On this stage, fate for sometime our moves steer / Into the
> chest of non-existence, one by one disappear.
> -- Omar Khayyam
>
> ما لعبتکانیم و فلک لعبت باز / از روی حقیقتی نه از روی مجاز / یک چند در این
> بساط بازی کردیم / رفتیم به صندوق عدم یک یک باز
> -- حکیم عمر خیام
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>



More information about the zeromq-dev mailing list