return ret==WAIT_OBJECT_0;
#else
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)
return ret==WAIT_OBJECT_0;
#else
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)