blob: 60ee9f6bfa6dd711320d2a0ba091e757be39cbe2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
-- Copyright (c) 2018-2021, OARC, Inc.
-- All rights reserved.
--
-- This file is part of dnsjit.
--
-- dnsjit is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- dnsjit is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with dnsjit. If not, see <http://www.gnu.org/licenses/>.
-- dnsjit.lib.clock
-- Clock and time functions
-- local clock = require("dnsjit.lib.clock")
-- local sec, nsec = clock.monotonic()
--
-- Functions to get the time from system-wide clocks.
module(...,package.seeall)
require("dnsjit.lib.clock_h")
local C = require("ffi").C
Clock = {}
-- Return the current seconds and nanoseconds (as a list) from the realtime
-- clock.
function Clock.realtime()
local ts = C.lib_clock_gettime("LIB_CLOCK_REALTIME")
return tonumber(ts.sec), tonumber(ts.nsec)
end
-- Return the current seconds and nanoseconds (as a list) from the monotonic
-- clock.
function Clock.monotonic()
local ts = C.lib_clock_gettime("LIB_CLOCK_MONOTONIC")
return tonumber(ts.sec), tonumber(ts.nsec)
end
-- clock_gettime (2)
return Clock
|