I don't object to using boost in Windows to provide posix abstractions
there. I would like to avoid introducing that dependency in Linux
though if possible.
-Ted
On 04/25/2016 09:11 AM, Adel Boutros wrote:
Unless you really insist on having a full C compatible code with the minimal
dependencies. In that case, I will have to write/adapt the equivalent
code/logic for pthread_mutex_t, pthread_cond_t, pthread_rwlock_t and pthread_t
on Windows.
From: [email protected]
To: [email protected]
Subject: RE: [Qpid-dispatch] timespec not defined on Windows
Date: Mon, 25 Apr 2016 14:35:19 +0200
Hello Ted,
I agree an abstraction level is required but for the time being I am following
the TDD approach. So once I have something working, I will refactor it before
submitting any patches. I will go with something and only granular to
milliseconds as you propose.
I am also facing another issue which might require adding a boost dependency
and it's related to the pthread library which is not available on Windows.
After checking Qpid C++ broker code, it was solved on Windows by using boost
thread library.
You can check for example
https://github.com/apache/qpid/blob/trunk/qpid/cpp/src/qpid/sys/windows/Mutex.h
So, how about adding a dependency to boost only for windows platform via Cmake?
This way, I can be inspired by Qpid C++ Broker code for threading and no extra
dependency is added for Linux/Unix.Or do you propose something better?
PS: At some point, it might even be intelligent to extract the common code from Qpid C++
broker, Proton and Dispatcher to create a common "utils" library for threading,
logging, daemon/service creation ...
Regards,Adel
Subject: Re: [Qpid-dispatch] timespec not defined on Windows
To: [email protected]
From: [email protected]
Date: Fri, 22 Apr 2016 12:35:50 -0400
Adel,
First of all, we should create an abstraction for timespec that is
usable on all platforms and then provide OS-specific implementations.
Dispatch doesn't currently need time at granularity above milliseconds.
To answer your question, I don't want to solve this in a way that
requires new dependencies in Linux like Boost.
-Ted
On 04/22/2016 12:24 PM, Adel Boutros wrote:
Hello,
While compiling Qpid-dispatch on Windows using Visual Studio 2013 64-bit, I
encountered a code related to time which doesn't work under windows.
In *src\server.c* thread_run method, there is a block of code using timespec
which is not defined in Windows
/struct timespec tv;
clock_gettime(CLOCK_REALTIME, &tv);
qd_timestamp_t milliseconds = ((qd_timestamp_t)tv.tv_sec) * 1000 +
tv.tv_nsec / 1000000;
qd_timer_visit_LH(milliseconds);/
I have found two ways to solve it:
1) One inspired from Qpid C++ broker
(qpid\cpp\src\qpid\sys\windows\Time.cpp: FromEpoch and outputHiresNow) but
this will add a dependency to Boost for qpid-dispatch.
2) The other found on Stackoverflow timespec-equivalent-for-windows
<http://stackoverflow.com/questions/8583308/timespec-equivalent-for-windows>
Which one would you find more appropriate?
Regards,
Adel Boutros
www.murex.com
--
View this message in context:
http://qpid.2158936.n2.nabble.com/Qpid-dispatch-timespec-not-defined-on-Windows-tp7642532.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]