Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
de829220
Commit
de829220
authored
Apr 17, 2014
by
Paul Sokolovsky
Browse files
unix modtime: Adhere to MICROPY_ENABLE_FLOAT better.
parent
b7e90ea0
Changes
1
Hide whitespace changes
Inline
Side-by-side
unix/modtime.c
View file @
de829220
...
...
@@ -11,18 +11,28 @@
#include
"runtime.h"
STATIC
mp_obj_t
mod_time_time
()
{
#if MICROPY_ENABLE_FLOAT
struct
timeval
tv
;
gettimeofday
(
&
tv
,
NULL
);
mp_float_t
val
=
tv
.
tv_sec
+
(
mp_float_t
)
tv
.
tv_usec
/
1000000
;
return
mp_obj_new_float
(
val
);
#else
return
mp_obj_new_int
((
machine_int_t
)
time
(
NULL
));
#endif
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
mod_time_time_obj
,
mod_time_time
);
// Note: this is deprecated since CPy3.3, but pystone still uses it.
STATIC
mp_obj_t
mod_time_clock
()
{
// return mp_obj_new_int((machine_int_t)clock());
// POSIX requires CLOCKS_PER_SEC equals 1000000, so that's what we assume
#if MICROPY_ENABLE_FLOAT
// POSIX requires CLOCKS_PER_SEC equals 1000000, so that's what we assume
.
// float cannot represent full range of int32 precisely, so we pre-divide
// int to reduce resolution, and then actually do float division hoping
// to preserve integer part resolution.
return
mp_obj_new_float
((
float
)(
clock
()
/
1000
)
/
1000
.
0
);
#else
return
mp_obj_new_int
((
machine_int_t
)
clock
());
#endif
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
mod_time_clock_obj
,
mod_time_clock
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment