simulator: Add PRNG field
This commit is contained in:
@@ -27,7 +27,7 @@ const programC = @import("projectC/main.zig").main;
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
// Associate executable names to zig entry functions
|
||||
|
||||
@@ -32,7 +32,7 @@ fn deleteDirProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("delete_dir", deleteDirProgram);
|
||||
|
||||
@@ -25,7 +25,7 @@ fn deleteFileProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("delete_file", deleteFileProgram);
|
||||
|
||||
@@ -28,7 +28,7 @@ fn directoriesProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("directories", directoriesProgram);
|
||||
|
||||
@@ -29,7 +29,7 @@ fn programC(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
// Associate executable names to zig entry functions
|
||||
|
||||
@@ -23,7 +23,7 @@ fn listDirProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("list_dir", listDirProgram);
|
||||
|
||||
@@ -13,7 +13,7 @@ fn createFileProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("create_file", createFileProgram);
|
||||
|
||||
@@ -23,7 +23,7 @@ fn readFileProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("read_file", readFileProgram);
|
||||
|
||||
@@ -26,7 +26,7 @@ fn program(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("select_group_async", program);
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ fn fastProgram(init: std.process.Init) anyerror!void {
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("slow", slowProgram);
|
||||
|
||||
@@ -63,7 +63,7 @@ pub fn main(init: std.process.Init) !void {
|
||||
const server_addresses = [_]u32{std.mem.readInt(u32, &server_ip.bytes, .big)};
|
||||
|
||||
var sim: Simulator = undefined;
|
||||
sim.init(std.heap.page_allocator, init.io);
|
||||
sim.init(std.heap.page_allocator, init.io, 0);
|
||||
defer sim.deinit();
|
||||
|
||||
try sim.addExecutable("server", serverProgram);
|
||||
|
||||
+3
-1
@@ -70,14 +70,16 @@ const Task = struct {
|
||||
};
|
||||
|
||||
gpa: Allocator,
|
||||
prng: *std.Random.DefaultPrng,
|
||||
tasks: std.ArrayList(Task),
|
||||
regs: Registers,
|
||||
current_id: ?TaskID,
|
||||
current_time: u64,
|
||||
next_task_id: u64,
|
||||
|
||||
pub fn init(self: *Scheduler, gpa: Allocator) void {
|
||||
pub fn init(self: *Scheduler, gpa: Allocator, prng: *std.Random.DefaultPrng) void {
|
||||
self.gpa = gpa;
|
||||
self.prng = prng;
|
||||
self.tasks = .empty;
|
||||
self.current_id = null;
|
||||
self.current_time = 0;
|
||||
|
||||
+4
-2
@@ -25,15 +25,17 @@ const ExecutableName = struct {
|
||||
};
|
||||
|
||||
gpa: Allocator,
|
||||
prng: std.Random.DefaultPrng,
|
||||
scheduler: Scheduler,
|
||||
network: Network,
|
||||
nodes: std.ArrayList(*Node),
|
||||
executables: std.ArrayList(ExecutableName),
|
||||
real_io: std.Io,
|
||||
|
||||
pub fn init(self: *Simulator, gpa: Allocator, real_io: std.Io) void {
|
||||
pub fn init(self: *Simulator, gpa: Allocator, real_io: std.Io, seed: u64) void {
|
||||
self.gpa = gpa;
|
||||
self.scheduler.init(gpa);
|
||||
self.prng = std.Random.DefaultPrng.init(seed);
|
||||
self.scheduler.init(gpa, &self.prng);
|
||||
self.network.init(gpa);
|
||||
self.nodes = .empty;
|
||||
self.executables = .empty;
|
||||
|
||||
Reference in New Issue
Block a user