Comments (3)
I was thinking all events in shadow would follow the same pattern instead of having event "subtypes". This means the non-vci events (DTIMER, SIMOP, TICKTOCK) would also be refactored to extend the abstract class.
Or would it be better to differentiate "virtual" communication events (i.e. one node creating an event for itself or for another) from "physical" communication events (i.e. one process or thread creates events for another process or thread)?
Thoughts?
from shadow.
It seems that it is definitely possible to have just one abstract event class which is used both for virtual and physics events. However, there would seem to be quite a few variables that would just be used by the VCI events, and I would think having two separate abstract classes would allow for easier expansion for events that needed to be added to either the physical or virtual event class, especially if they differed in some major way.
For now I'll just go ahead and create a separate abstract class for non-vci events, but if at any point it's decided that it's better to have just one abstract class, it should be a relatively easy to make that change.
from shadow.
Any part of this that may not have been done will be cleaned up during the re-write of the threading engine.
from shadow.
Related Issues (20)
- UDP max payload size should depend on the MTU
- Loopback interface should use a larger MTU HOT 1
- Add docs about language and testing expectations for new PRs HOT 1
- Consider removing the `--summarize` rust test option
- Log file size problem HOT 2
- Plugin makes 6 extra syscalls for every "gettimeofday" call
- Cannot disable perf timers after enabling
- Fork test fails when perf timers are enabled
- Document that Shadow usually doesn't perform shell expansion in the config file
- Upgrade nix version in tests
- `posix_spawn` fails starting in glibc-2.38 HOT 2
- Go tests segfault with Go 1.21 (Fedora 38 and 39) HOT 4
- Cannot include structs with bitfields in linux-api
- Partial read triggers an event in Shadow, but not Linux HOT 2
- The 'fork-linux' test is flaky
- Snowflake simulation fails to dial OR port HOT 8
- Decide policy on stub implementations (syscalls, sockopts, flags, etc) HOT 2
- "thread has no syscall_condition" warning during fork-shadow test
- crash: rootedcell "Dropped without calling `safely_drop`" HOT 9
- UDP has a weird edge-triggered EPOLLOUT behavior in Linux
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 shadow.