On 29/10/2012, at 5:53 AM, rmbishop wrote:

> That fix seemed to work, but unmasked another problem:
> 
> build\release\src\pthread\pthread_condv.cpp(68) : error C3861: 'trunc': 
> identifi
> er not found
> build\release\src\pthread\pthread_condv.cpp(69) : error C3861: 'trunc': 
> identifi
> er not found
> 
> Did some looking and found that the trunc function is not available for 
> Visual C++ 10.0.

Hmm ... my man page says:

SYNOPSIS
     #include <math.h>

     double
     trunc(double x);

     long double
     truncl(long double x);

     float
     truncf(float x);

STANDARDS
     The trunc() functions conform to ISO/IEC 9899:1999(E).

However it isn't in the MSDN library. Lets try this:

int flx_condv_t::timedwait(flx_mutex_t *m, double t) {
  struct timespec tv;
  tv.tv_sec = (unsigned long) (t);
  tv.tv_nsec = (unsigned long) ((t - floor (t)) * 1E9); 
  return timedwait (m, &tv);
}


BTW: some of my calculations seem to be wrong.
For example this is wrong:

  unsigned long t1 = abstime->tv_sec * 1000 + abstime->tv_nsec / 1000;

Nano is E-9 not E-6. I'll check that too.

For better or worse Felix is using "double in seconds" for all times
to avoid this horrible confusion.

--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to