View source: R/delayed_release.R
delayed_release | R Documentation |
This brick encapsulates a delayed release: the arrival releases the resource and continues its way immediately, but the resource is busy for an additional period of time.
delayed_release(
.trj,
resource,
task,
amount = 1,
preemptive = FALSE,
mon_all = FALSE
)
delayed_release_selected(
.trj,
task,
amount = 1,
preemptive = FALSE,
mon_all = FALSE
)
.trj |
the trajectory object. |
resource |
the name of the resource. |
task |
the timeout duration supplied by either passing a numeric or a callable object (a function) which must return a numeric (negative values are automatically coerced to positive). |
amount |
the amount to seize/release, accepts either a numeric or a callable object (a function) which must return a numeric. |
preemptive |
whether arrivals in the server can be preempted or not based on seize priorities. |
mon_all |
if |
Returns the following chain of activities: clone
> synchronize
(see examples below).
## These are equivalent for a non-preemptive resource:
trajectory() %>%
delayed_release("res1", 5, 1)
trajectory() %>%
clone(
2,
trajectory() %>%
set_capacity("res1", -1, mod="+") %>%
release("res1", 1),
trajectory() %>%
timeout(5) %>%
set_capacity("res1", 1, mod="+")
) %>%
synchronize(wait=FALSE)
## These are equivalent for a preemptive resource:
trajectory() %>%
delayed_release("res2", 5, 1, preemptive=TRUE)
trajectory() %>%
clone(
2,
trajectory() %>%
release("res2", 1),
trajectory() %>%
set_prioritization(c(rep(.Machine$integer.max, 2), 0)) %>%
seize("res2", 1) %>%
timeout(5) %>%
release("res2", 1)
) %>%
synchronize(wait=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.