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]

Reply via email to