1
0
forked from ROMEO/nexosim
Commit Graph

21 Commits

Author SHA1 Message Date
49e713262b Check clock sync with configurable tolerance 2024-11-12 11:34:17 +01:00
e6901386cf Add support for simulation timeouts 2024-11-09 12:17:27 +01:00
039fefad47 Introduce ProtoModel trait, remove Model::setup
The external_input example has been as well adapted and (at least
temporarily) simplifiedi/modified to remove the dependencies on
`atomic_wait` and `mio`.
2024-11-05 16:16:42 +01:00
e7b64524e0 Report deadlocked models and their malbox size 2024-10-28 12:25:02 +01:00
1cfaa00f9e Make execution failible, impl deadlock detection
TODO: return the list of models involved in a deadlock.

Note that Many execution errors are not implemented at all at the
moment and will need separate PRs, namely:
- Terminated
- ModelError
- Panic
2024-10-20 12:35:44 +02:00
7487a264ab Add tracing support for simulation timestamps 2024-09-12 15:35:31 +02:00
e376f17c7c Add model tracing spans + tracing feature flag 2024-09-10 11:12:49 +02:00
6e3d5bb132 Change scheduler interface and add external inputs example.
Relevant for issue #13.
2024-08-02 14:06:49 +02:00
8b015b2eba Add AutoActionKey 2024-06-26 13:42:24 +02:00
f731d40add WIP 2024-06-11 11:27:16 +02:00
195bcdceba Add instance name to model contexts 2024-05-10 14:32:07 +02:00
7526ffbcea Add setup step. 2024-04-26 11:48:11 +02:00
e84e802f09 Initial (g)RPC implementation 2024-04-25 11:12:54 +02:00
1be2f48a00 Revert "Merge pull request #12 from asynchronics/feature/event-sinks"
This reverts commit 7e881afb63, reversing
changes made to 9d78e4f72a.
2024-03-06 16:16:55 +01:00
863f995f1b Small changes and cleanups to prepare the RPC work 2024-02-19 13:20:02 +01:00
41a38445ee Correct minor typos 2023-08-29 12:56:57 +02:00
ef703f5b7e Add support for custom/real-time clocks 2023-08-29 12:46:40 +02:00
22516fe190 Overload schedule_*event methods
The `schedule_*event_in` and `schedule_*event_at` pairs of methods are
each merged into a single overloaded method accepting either a relative
`Duration`or an absolute `MonotonicTime`.
2023-08-14 15:47:08 +02:00
b0f7e69039 Implement periodic events 2023-07-28 16:18:10 +02:00
f458377308 Make it possible to cancel current-time events
This is a pretty large patch that impacts the API.

Until now, it was not possible to cancel events that were scheduled for
the current simulation time slice, making it necessary for the user to
use complex workarounds (see former version of the espresso machine
example).

The new implementation makes this possible but the generation of a key
associated to an event has now a non-negligible cost (basicaly it
creates three references to an Arc). For this reason, the API now
defaults to NOT creating a key, and new methods were added for
situations when the event may need to be cancelled and a key is
necessary.

See the much simplified implementation of the espresso machine example
for a motivating case.
2023-07-21 14:23:20 +02:00
31520d461a First release candidate for v0.1.0 2023-01-16 23:05:46 +01:00