Skip to content

Commit

Permalink
Add clock_gettime implementation for OSX.
Browse files Browse the repository at this point in the history
  • Loading branch information
evoskuil committed Feb 14, 2015
1 parent 6630f19 commit a8f11b3
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/clock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,28 @@
#include <time.h>
#endif

#if defined ZMQ_HAVE_OSX
#include <mach/clock.h>
#include <mach/mach.h>
#include <time.h>
#include <sys/time.h>

int clock_gettime (int clock_id, timespec *ts)
{
// The clock_id specified is not supported on this system.
if (clock_id != CLOCK_REALTIME)
return EINVAL;

clock_serv_t cclock;
mach_timespec_t mts;
host_get_clock_service (mach_host_self (), CALENDAR_CLOCK, &cclock);
clock_get_time (cclock, &mts);
mach_port_deallocate (mach_task_self (), cclock);
ts->tv_sec = mts.tv_sec;
ts->tv_nsec = mts.tv_nsec;
}
#endif

#ifdef ZMQ_HAVE_WINDOWS
typedef ULONGLONG (*f_compatible_get_tick_count64)();

Expand Down
10 changes: 10 additions & 0 deletions src/clock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@

#include "stdint.hpp"

#if defined ZMQ_HAVE_OSX
#include <mach/clock.h>
#include <mach/mach.h>
#include <time.h>
#include <sys/time.h>
int clock_gettime (int clock_id, timespec *ts);
#define CLOCK_REALTIME 0
#define HAVE_CLOCK_GETTIME
#endif

namespace zmq
{

Expand Down
1 change: 1 addition & 0 deletions src/condition_variable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#define __ZMQ_CONDITON_VARIABLE_HPP_INCLUDED__

#include "platform.hpp"
#include "clock.hpp"
#include "err.hpp"
#include "mutex.hpp"

Expand Down
1 change: 1 addition & 0 deletions src/mailbox_safe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/

#include "mailbox_safe.hpp"
#include "clock.hpp"
#include "err.hpp"

zmq::mailbox_safe_t::mailbox_safe_t (mutex_t* sync_) :
Expand Down

0 comments on commit a8f11b3

Please sign in to comment.