Comments (2)
Hi! You should not be yielding inside of the get
function but you should be yielding the call to get
in the receiver
. Otherwise, msg
gets bound to a yielded call and not to the result of a call yielded to the simulator. It's a bit tricky to explain, but I'll try: the receiver
yields events to the Simulation
which schedules them for execution. When you do
msg = @yield get(cable)
the receiver
yields the get
event to the scheduler which schedules it and suspends the receiver; once the call to get
is executed, the function resumes and the result (that is, the message) is bound to the msg
variable. If get
is @resumable
the call will not yield an event to the simulator, but will return the event which will then get bound to the msg
variable. These are the things that show up in your log as
##664(0x00, #undef, Cable(SimJulia.Simulation time: 96.0 active_process:
nothing, 10.0, SimJulia.Store{String})
See also #55
from concurrentsim.jl.
Example at #55 tested and working
from concurrentsim.jl.
Related Issues (20)
- Error when building documentation HOT 2
- Try - catch bad for performance in Julia. HOT 1
- LoadError: UndefVarError: active_proc not defined HOT 1
- Crashes on upcoming Julia 1.3 HOT 5
- Parallel calculation using multiple cores HOT 1
- Help with simple simulation loop HOT 2
- Support for Discrete Time HOT 5
- TagBot trigger issue HOT 8
- Rank priority function in StorePutKey
- Polling a resource / poor-mans spinlock HOT 4
- Citation reference? HOT 1
- Add API Functions for process and resource state inspection
- TODO: Transparent statistics gathering for resources HOT 1
- document similarities and differences with DiscreteEvents.jl
- add downstream breakage tests to CI
- set documentation builder to error on warnings (and clear up all the warnings)
- enable preemption of jobs HOT 1
- use the typical Base functions instead of declaring new ones (e.g. `get`, `put`, `release`, etc) HOT 1
- document difference between Resource, Store, and Container
- verify all basic types are concrete (and consider using sumtypes where possible)
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 concurrentsim.jl.