#include <sys/time.h>
#include <cerrno>
#endif
+#include <msp/time/rawtime_private.h>
#include <msp/time/timestamp.h>
#include <msp/time/units.h>
#include <msp/time/utils.h>
throw system_error("Semaphore::wait");
return ret==WAIT_OBJECT_0;
#else
- timespec timeout = Time::now()+d;
+ timespec timeout = Time::rawtime_to_timespec((Time::now()+d).raw());
int err = pthread_cond_timedwait(&priv->cond, &priv->mutex.priv->mutex, &timeout);
if(err && err!=ETIMEDOUT)