int Resource::post_release() { // serve another while (queue_count) if (!try_serve_from_queue(sim->verbose, sim->now())) break; if (is_monitored()) observe(sim->now()); return SUCCESS; }
int Resource::post_release() { // serve another while (queue_count) if (!try_serve_from_queue(sim->verbose, sim->now())) break; if (is_monitored()) sim->record_resource(name, server_count, queue_count, capacity, queue_size); return SUCCESS; }
void Resource::set_capacity(int value) { if (capacity == value) return; int last = capacity; capacity = value; if (capacity > last || capacity < 0) { // serve another while (queue_count) if (!try_serve_from_queue(sim->verbose, sim->now())) break; } else if (capacity < last) { while (server_count > capacity) if (!try_free_server(sim->verbose, sim->now())) break; } if (is_monitored()) observe(sim->now()); }
void Resource::set_capacity(int value) { if (capacity == value) return; int last = capacity; capacity = value; if (last >= 0 && (capacity > last || capacity < 0)) { // serve another while (queue_count) if (!try_serve_from_queue(sim->verbose, sim->now())) break; } else if (last < 0 || capacity < last) { while (server_count > capacity) if (!try_free_server(sim->verbose, sim->now())) break; } if (is_monitored()) sim->record_resource(name, server_count, queue_count, capacity, queue_size); }