Comments (7)
Took a look at it but it requires a bit of concentration to not introduce bugs :) Do have a look if you like!
from fibers.
Hi @jetomit!
Using CLOCK_MONOTONIC
as you suggest seemed like the right choice to me so I started working on it. However, the API of (fibers timers)
as well as schedule-task-at-time
expect "internal time units"; changing timer-wheel
to use CLOCK_MONOTONIC
would affect those interfaces similarly, which is not acceptable.
Instead we should probably change timer-wheel-advance!
to cope with large gaps.
@wingo, WDYT?
Thanks!
from fibers.
@jetomit Here's a proposed workaround on the Guix side: https://issues.guix.gnu.org/64966
from fibers.
Here's a proposed workaround on the Guix side: https://issues.guix.gnu.org/64966
This would work for aarch64, but I also encounter this issue on armhf and x86_64 systems. This happens whenever system time is pushed forward by a significant amount (a day or more), either by ntpd or manually.
As I understand it, guile’s internal-time-units
only depends on the platform and is the same for all clock types. The bigger problem with using CLOCK_MONOTONIC
might be that it doesn’t count time the system is suspended, which would probably break stuff.
from fibers.
Another report of shepherd
spinning once system time has changed: https://issues.guix.gnu.org/66684
from fibers.
@wingo Hello! Did you have a chance to look into that? I'd be happy to try and implement any suggestions you might have (I'd love to do that before Shepherd 1.0 is out).
from fibers.
Just posting for the records another example "in the wild" of someone working around this issue. https://issues.guix.gnu.org/70892#3
Thanks for all your hard work! 😄
from fibers.
Related Issues (20)
- `race-until` test runs forever (1.2.0 + affinity patch, NetBSD 9 amd64) HOT 1
- Cannot print backtraces within a fiber HOT 13
- [doc] clarify the use of dynamic-wind, probably in the Barriers chapter HOT 1
- Guile deprecation warning due to bit-count HOT 9
- Fibers wait can forever on a file descriptor once it has been closed HOT 1
- 'get-message' continuation fired more than once? HOT 13
- On GNU/Hurd, 'time_units_per_microsec' is zero HOT 1
- Documentation refers to `send-operation` instead of `put-operation`
- Implementing thread-operation HOT 10
- concurrent-web-server doesn't wait for the server to be started HOT 1
- Missing basic combinators `guard-operation` and `nack-guard-operation`
- fibers does not support wait-operation being interrupted, even when on a non-fibers thread HOT 6
- Something like promises HOT 5
- Test failures with "wrong state" on aarch64 HOT 1
- Expensive tests should be skipped by default
- Failing to create a non-blocking socket inside fiber HOT 2
- Configure dosnt't look up for libgc headers
- Q: Does it support racket? or how to use it in racket HOT 1
- Unbound variable: SOCK_NONBLOCK on MacOS 14.5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fibers.