The Qpid broker sys/windows folder has a lot of model code that could be used for a compatibility layer in dispatch.
https://github.com/apache/qpid/tree/trunk/qpid/cpp/src/qpid/sys/windows ----- Original Message ----- > From: "Ted Ross" <[email protected]> > To: [email protected] > Sent: Monday, April 25, 2016 9:45:46 AM > Subject: Re: [Qpid-dispatch] timespec not defined on Windows > > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
