summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/async/.nix/derivation.nix3
-rw-r--r--modules/async/c++/async.cpp16
-rw-r--r--modules/async/c++/async.hpp13
-rw-r--r--modules/codec-unit/c++/timer.hpp5
-rw-r--r--modules/codec/.nix/derivation.nix1
-rw-r--r--modules/codec/SConstruct3
-rw-r--r--modules/io/c++/io_unix.cpp9
7 files changed, 26 insertions, 24 deletions
diff --git a/modules/async/.nix/derivation.nix b/modules/async/.nix/derivation.nix
index 3992ea1..96bf173 100644
--- a/modules/async/.nix/derivation.nix
+++ b/modules/async/.nix/derivation.nix
@@ -21,7 +21,8 @@ in stdenv.mkDerivation {
];
buildInputs = [
- forstio.core
+ forstio.core
+ forstio.codec
];
doCheck = true;
diff --git a/modules/async/c++/async.cpp b/modules/async/c++/async.cpp
index 742d43c..ea30cda 100644
--- a/modules/async/c++/async.cpp
+++ b/modules/async/c++/async.cpp
@@ -259,17 +259,17 @@ bool event_loop::turn() {
return true;
}
-bool event_loop::wait(const std::chrono::steady_clock::duration &duration) {
+bool event_loop::wait_for(uint64_t duration) {
if (event_port_) {
- event_port_->wait(duration);
+ event_port_->wait_for(duration);
}
return turn_loop();
}
-bool event_loop::wait(const std::chrono::steady_clock::time_point &time_point) {
+bool event_loop::wait_until(uint64_t time_point) {
if (event_port_) {
- event_port_->wait(time_point);
+ event_port_->wait_until(time_point);
}
return turn_loop();
@@ -306,12 +306,12 @@ wait_scope::~wait_scope() { loop_.leave_scope(); }
void wait_scope::wait() { loop_.wait(); }
-void wait_scope::wait(const std::chrono::steady_clock::duration &duration) {
- loop_.wait(duration);
+void wait_scope::wait_for(uint64_t duration) {
+ loop_.wait_for(duration);
}
-void wait_scope::wait(const std::chrono::steady_clock::time_point &time_point) {
- loop_.wait(time_point);
+void wait_scope::wait_until(uint64_t time_point) {
+ loop_.wait_until(time_point);
}
void wait_scope::poll() { loop_.poll(); }
diff --git a/modules/async/c++/async.hpp b/modules/async/c++/async.hpp
index bb56952..06fa4e3 100644
--- a/modules/async/c++/async.hpp
+++ b/modules/async/c++/async.hpp
@@ -3,7 +3,6 @@
#include <forstio/common.hpp>
#include <forstio/error.hpp>
-#include <chrono>
#include <functional>
#include <limits>
#include <list>
@@ -361,8 +360,8 @@ public:
virtual void poll() = 0;
virtual void wait() = 0;
- virtual void wait(const std::chrono::steady_clock::duration &) = 0;
- virtual void wait(const std::chrono::steady_clock::time_point &) = 0;
+ virtual void wait_for(uint64_t millisec) = 0;
+ virtual void wait_until(uint64_t millisec) = 0;
virtual void wake() = 0;
};
@@ -451,8 +450,8 @@ public:
event_loop &operator=(event_loop &&) = default;
bool wait();
- bool wait(const std::chrono::steady_clock::duration &);
- bool wait(const std::chrono::steady_clock::time_point &);
+ bool wait_for(uint64_t millisec);
+ bool wait_until(uint64_t millisec);
bool poll();
event_port *get_event_port();
@@ -473,8 +472,8 @@ public:
~wait_scope();
void wait();
- void wait(const std::chrono::steady_clock::duration &);
- void wait(const std::chrono::steady_clock::time_point &);
+ void wait_for(uint64_t millisec);
+ void wait_until(uint64_t millisec);
void poll();
};
diff --git a/modules/codec-unit/c++/timer.hpp b/modules/codec-unit/c++/timer.hpp
new file mode 100644
index 0000000..30eed2f
--- /dev/null
+++ b/modules/codec-unit/c++/timer.hpp
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace saw {
+
+}
diff --git a/modules/codec/.nix/derivation.nix b/modules/codec/.nix/derivation.nix
index 288db6a..c17d575 100644
--- a/modules/codec/.nix/derivation.nix
+++ b/modules/codec/.nix/derivation.nix
@@ -19,7 +19,6 @@ in stdenv.mkDerivation {
buildInputs = [
forstio.core
- forstio.async
];
nativeBuildInputs = [
diff --git a/modules/codec/SConstruct b/modules/codec/SConstruct
index 6bc28e3..c52aee1 100644
--- a/modules/codec/SConstruct
+++ b/modules/codec/SConstruct
@@ -55,8 +55,7 @@ env=Environment(ENV=os.environ, variables=env_vars, CPPPATH=[],
CPPDEFINES=['SAW_UNIX'],
CXXFLAGS=['-std=c++20','-g','-Wall','-Wextra'],
LIBS=[
- 'forstio-core',
- 'forstio-async'
+ 'forstio-core'
]
)
env.__class__.add_source_files = add_kel_source_files
diff --git a/modules/io/c++/io_unix.cpp b/modules/io/c++/io_unix.cpp
index 2c6cf00..37af107 100644
--- a/modules/io/c++/io_unix.cpp
+++ b/modules/io/c++/io_unix.cpp
@@ -207,14 +207,13 @@ public:
void wait() override { poll_impl(-1); }
- void wait(const std::chrono::steady_clock::duration &duration) override {
- poll_impl(
- std::chrono::duration_cast<std::chrono::milliseconds>(duration)
- .count());
+ void wait_for(uint64_t nanosec) override {
+ poll_impl(nanosec/1000);
}
void
- wait(const std::chrono::steady_clock::time_point &time_point) override {
+ wait_until(uint64_t nanosec) override {
auto now = std::chrono::steady_clock::now();
+ std::chrono::steady_clock::time_point time_point = nanosec;
if (time_point <= now) {
poll();
} else {