libs/time.lua

Thu, 23 Mar 2023 18:56:32 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 18:56:32 +0000
changeset 485
c9a144591649
parent 471
788d4d91ef6b
permissions
-rw-r--r--

component: Avoid adding to the global stream metatable

This allows component and client connections to be made side-by-side.
Previous to this change, loading this connection module would break the
ability to make client connections, due to overriding stream methods such as
:reopen() and :reset().

A next step would be to share the methods that the two connection modules have
in common.

440
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Import gettime() from LuaSocket, as a way to access high-resolution time
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 -- in a platform-independent way
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 local socket_gettime = require "socket".gettime;
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5
471
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
6 local monotonic;
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
7
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
8 local have_system_lib, system = pcall(require, "system");
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
9 if have_system_lib then
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
10 monotonic = system.monotime;
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
11 end
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
12
440
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 return {
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 now = socket_gettime;
471
788d4d91ef6b libs/time: Add monotonic() if lua-system is available
Matthew Wild <mwild1@gmail.com>
parents: 440
diff changeset
15 monotonic = monotonic;
440
14071b3a46df util.time: Add pure Lua version of Prosody C module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 }

mercurial