summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
efc583c)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4863
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
void xbt_os_sem_timedacquire(xbt_os_sem_t sem,double timeout)
{
void xbt_os_sem_timedacquire(xbt_os_sem_t sem,double timeout)
{
- /* mac os x have not the sem_timedwait() function */
- #ifndef HAVE_SEM_TIMEDWAIT
- THROW_UNIMPLEMENTED;
- #else
int errcode;
struct timespec ts_end;
double end = timeout + xbt_os_time();
int errcode;
struct timespec ts_end;
double end = timeout + xbt_os_time();
+ /* mac os x have not the sem_timedwait() function */
+#ifndef HAVE_SEM_TIMEDWAIT
+ THROW_UNIMPLEMENTED;
+#else
ts_end.tv_sec = (time_t) floor(end);
ts_end.tv_nsec = (long) ( ( end - ts_end.tv_sec) * 1000000000);
DEBUG2("sem_timedwait(%p,%p)",&(sem->s),&ts_end);
ts_end.tv_sec = (time_t) floor(end);
ts_end.tv_nsec = (long) ( ( end - ts_end.tv_sec) * 1000000000);
DEBUG2("sem_timedwait(%p,%p)",&(sem->s),&ts_end);
default:
THROW3(system_error,errcode,"sem_timedwait(%p,%f) failed: %s",sem,timeout, strerror(errcode));
}
default:
THROW3(system_error,errcode,"sem_timedwait(%p,%f) failed: %s",sem,timeout, strerror(errcode));
}