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
[email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language