aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/atomic/queue.zig7
-rw-r--r--std/atomic/stack.zig7
-rw-r--r--std/buf_map.zig5
-rw-r--r--std/buf_set.zig5
-rw-r--r--std/debug.zig4
-rw-r--r--std/event/channel.zig5
-rw-r--r--std/event/fs.zig5
-rw-r--r--std/event/future.zig5
-rw-r--r--std/event/group.zig5
-rw-r--r--std/event/lock.zig5
-rw-r--r--std/event/loop.zig10
-rw-r--r--std/event/rwlock.zig5
-rw-r--r--std/hash_map.zig15
-rw-r--r--std/heap.zig30
-rw-r--r--std/mutex.zig7
-rw-r--r--std/packed_int_array.zig13
-rw-r--r--std/segmented_list.zig4
-rw-r--r--std/special/build_runner.zig5
-rw-r--r--std/statically_initialized_mutex.zig7
19 files changed, 37 insertions, 112 deletions
diff --git a/std/atomic/queue.zig b/std/atomic/queue.zig
index 73db2996bd..dbc011bed3 100644
--- a/std/atomic/queue.zig
+++ b/std/atomic/queue.zig
@@ -152,11 +152,8 @@ const puts_per_thread = 500;
const put_thread_count = 3;
test "std.atomic.Queue" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 300 * 1024);
- defer direct_allocator.allocator.free(plenty_of_memory);
+ var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
+ defer std.heap.direct_allocator.free(plenty_of_memory);
var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
var a = &fixed_buffer_allocator.allocator;
diff --git a/std/atomic/stack.zig b/std/atomic/stack.zig
index e9d070ac7b..dd288adbf1 100644
--- a/std/atomic/stack.zig
+++ b/std/atomic/stack.zig
@@ -86,11 +86,8 @@ const puts_per_thread = 500;
const put_thread_count = 3;
test "std.atomic.stack" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 300 * 1024);
- defer direct_allocator.allocator.free(plenty_of_memory);
+ var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
+ defer std.heap.direct_allocator.free(plenty_of_memory);
var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
var a = &fixed_buffer_allocator.allocator;
diff --git a/std/buf_map.zig b/std/buf_map.zig
index be0666d972..4079d41caf 100644
--- a/std/buf_map.zig
+++ b/std/buf_map.zig
@@ -83,10 +83,7 @@ pub const BufMap = struct {
};
test "BufMap" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var bufmap = BufMap.init(&direct_allocator.allocator);
+ var bufmap = BufMap.init(std.heap.direct_allocator);
defer bufmap.deinit();
try bufmap.set("x", "1");
diff --git a/std/buf_set.zig b/std/buf_set.zig
index 807b9db35d..33e66a64e8 100644
--- a/std/buf_set.zig
+++ b/std/buf_set.zig
@@ -65,10 +65,7 @@ pub const BufSet = struct {
};
test "BufSet" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var bufset = BufSet.init(&direct_allocator.allocator);
+ var bufset = BufSet.init(std.heap.direct_allocator);
defer bufset.deinit();
try bufset.put("x");
diff --git a/std/debug.zig b/std/debug.zig
index ae9a5227c9..223f93d1ad 100644
--- a/std/debug.zig
+++ b/std/debug.zig
@@ -2283,13 +2283,11 @@ var global_allocator_mem: [100 * 1024]u8 = undefined;
/// TODO multithreaded awareness
var debug_info_allocator: ?*mem.Allocator = null;
-var debug_info_direct_allocator: std.heap.DirectAllocator = undefined;
var debug_info_arena_allocator: std.heap.ArenaAllocator = undefined;
fn getDebugInfoAllocator() *mem.Allocator {
if (debug_info_allocator) |a| return a;
- debug_info_direct_allocator = std.heap.DirectAllocator.init();
- debug_info_arena_allocator = std.heap.ArenaAllocator.init(&debug_info_direct_allocator.allocator);
+ debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
debug_info_allocator = &debug_info_arena_allocator.allocator;
return &debug_info_arena_allocator.allocator;
}
diff --git a/std/event/channel.zig b/std/event/channel.zig
index be5af49774..bb2fbbf126 100644
--- a/std/event/channel.zig
+++ b/std/event/channel.zig
@@ -324,10 +324,7 @@ test "std.event.Channel" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
// TODO make a multi threaded test
diff --git a/std/event/fs.zig b/std/event/fs.zig
index b48f8723c1..0f42375270 100644
--- a/std/event/fs.zig
+++ b/std/event/fs.zig
@@ -1310,10 +1310,7 @@ const test_tmp_dir = "std_event_fs_test";
// TODO this test is disabled until the coroutine rewrite is finished.
//test "write a file, watch it, write it again" {
// return error.SkipZigTest;
-// var da = std.heap.DirectAllocator.init();
-// defer da.deinit();
-//
-// const allocator = &da.allocator;
+// const allocator = std.heap.direct_allocator;
//
// // TODO move this into event loop too
// try os.makePath(allocator, test_tmp_dir);
diff --git a/std/event/future.zig b/std/event/future.zig
index e288e1ba5a..2e62ace978 100644
--- a/std/event/future.zig
+++ b/std/event/future.zig
@@ -88,10 +88,7 @@ test "std.event.Future" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded or builtin.os != builtin.Os.linux) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
diff --git a/std/event/group.zig b/std/event/group.zig
index 143efd76c3..36235eed74 100644
--- a/std/event/group.zig
+++ b/std/event/group.zig
@@ -125,10 +125,7 @@ test "std.event.Group" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
diff --git a/std/event/lock.zig b/std/event/lock.zig
index 031b2adf19..a759c1e0a5 100644
--- a/std/event/lock.zig
+++ b/std/event/lock.zig
@@ -126,10 +126,7 @@ test "std.event.Lock" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
diff --git a/std/event/loop.zig b/std/event/loop.zig
index 95e764c28d..aacd4bd7aa 100644
--- a/std/event/loop.zig
+++ b/std/event/loop.zig
@@ -866,10 +866,7 @@ test "std.event.Loop - basic" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded or builtin.os != builtin.Os.linux) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
@@ -882,10 +879,7 @@ test "std.event.Loop - call" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded or builtin.os != builtin.Os.linux) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
diff --git a/std/event/rwlock.zig b/std/event/rwlock.zig
index 00f3c0bc60..03e6f5ab92 100644
--- a/std/event/rwlock.zig
+++ b/std/event/rwlock.zig
@@ -215,10 +215,7 @@ test "std.event.RwLock" {
// https://github.com/ziglang/zig/issues/1908
if (builtin.single_threaded or builtin.os != builtin.Os.linux) return error.SkipZigTest;
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
-
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var loop: Loop = undefined;
try loop.initMultiThreaded(allocator);
diff --git a/std/hash_map.zig b/std/hash_map.zig
index 13ebb0a1fe..c99d1d2490 100644
--- a/std/hash_map.zig
+++ b/std/hash_map.zig
@@ -397,10 +397,7 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u3
}
test "basic hash map usage" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var map = AutoHashMap(i32, i32).init(&direct_allocator.allocator);
+ var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
defer map.deinit();
testing.expect((try map.put(1, 11)) == null);
@@ -444,10 +441,7 @@ test "basic hash map usage" {
}
test "iterator hash map" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var reset_map = AutoHashMap(i32, i32).init(&direct_allocator.allocator);
+ var reset_map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
defer reset_map.deinit();
try reset_map.putNoClobber(1, 11);
@@ -491,10 +485,7 @@ test "iterator hash map" {
}
test "ensure capacity" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var map = AutoHashMap(i32, i32).init(&direct_allocator.allocator);
+ var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator);
defer map.deinit();
try map.ensureCapacity(20);
diff --git a/std/heap.zig b/std/heap.zig
index b35abd138c..648ba46252 100644
--- a/std/heap.zig
+++ b/std/heap.zig
@@ -31,22 +31,14 @@ fn cShrink(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new
/// This allocator makes a syscall directly for every allocation and free.
/// Thread-safe and lock-free.
-pub const DirectAllocator = struct {
- allocator: Allocator,
-
- pub fn init() DirectAllocator {
- return DirectAllocator{
- .allocator = Allocator{
- .reallocFn = realloc,
- .shrinkFn = shrink,
- },
- };
- }
-
- pub fn deinit(self: *DirectAllocator) void {}
+pub const direct_allocator = &direct_allocator_state;
+var direct_allocator_state = Allocator{
+ .reallocFn = DirectAllocator.realloc,
+ .shrinkFn = DirectAllocator.shrink,
+};
+const DirectAllocator = struct {
fn alloc(allocator: *Allocator, n: usize, alignment: u29) error{OutOfMemory}![]u8 {
- const self = @fieldParentPtr(DirectAllocator, "allocator", allocator);
if (n == 0)
return (([*]u8)(undefined))[0..0];
@@ -730,10 +722,7 @@ test "c_allocator" {
}
test "DirectAllocator" {
- var direct_allocator = DirectAllocator.init();
- defer direct_allocator.deinit();
-
- const allocator = &direct_allocator.allocator;
+ const allocator = direct_allocator;
try testAllocator(allocator);
try testAllocatorAligned(allocator, 16);
try testAllocatorLargeAlignment(allocator);
@@ -765,10 +754,7 @@ test "HeapAllocator" {
}
test "ArenaAllocator" {
- var direct_allocator = DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var arena_allocator = ArenaAllocator.init(&direct_allocator.allocator);
+ var arena_allocator = ArenaAllocator.init(direct_allocator);
defer arena_allocator.deinit();
try testAllocator(&arena_allocator.allocator);
diff --git a/std/mutex.zig b/std/mutex.zig
index 6b8e586ea8..5f3b9272d9 100644
--- a/std/mutex.zig
+++ b/std/mutex.zig
@@ -130,11 +130,8 @@ const TestContext = struct {
};
test "std.Mutex" {
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 300 * 1024);
- defer direct_allocator.allocator.free(plenty_of_memory);
+ var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
+ defer std.heap.direct_allocator.free(plenty_of_memory);
var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
var a = &fixed_buffer_allocator.allocator;
diff --git a/std/packed_int_array.zig b/std/packed_int_array.zig
index ffca88b53b..5cbab2d33b 100644
--- a/std/packed_int_array.zig
+++ b/std/packed_int_array.zig
@@ -603,8 +603,7 @@ test "PackedInt(Array/Slice)Endian" {
}
//@NOTE: Need to manually update this list as more posix os's get
-// added to DirectAllocator. Windows can be added too when DirectAllocator
-// switches to VirtualAlloc.
+// added to DirectAllocator.
//These tests prove we aren't accidentally accessing memory past
// the end of the array/slice by placing it at the end of a page
@@ -613,7 +612,7 @@ test "PackedInt(Array/Slice)Endian" {
// don't account for the bounds.
test "PackedIntArray at end of available memory" {
switch (builtin.os) {
- .linux, .macosx, .ios, .freebsd, .netbsd => {},
+ .linux, .macosx, .ios, .freebsd, .netbsd, .windows => {},
else => return,
}
const PackedArray = PackedIntArray(u3, 8);
@@ -623,8 +622,7 @@ test "PackedIntArray at end of available memory" {
p: PackedArray,
};
- var da = std.heap.DirectAllocator.init();
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var pad = try allocator.create(Padded);
defer allocator.destroy(pad);
@@ -633,13 +631,12 @@ test "PackedIntArray at end of available memory" {
test "PackedIntSlice at end of available memory" {
switch (builtin.os) {
- .linux, .macosx, .ios, .freebsd, .netbsd => {},
+ .linux, .macosx, .ios, .freebsd, .netbsd, .windows => {},
else => return,
}
const PackedSlice = PackedIntSlice(u11);
- var da = std.heap.DirectAllocator.init();
- const allocator = &da.allocator;
+ const allocator = std.heap.direct_allocator;
var page = try allocator.alloc(u8, std.mem.page_size);
defer allocator.free(page);
diff --git a/std/segmented_list.zig b/std/segmented_list.zig
index dc3358cd85..e0b84d5c0d 100644
--- a/std/segmented_list.zig
+++ b/std/segmented_list.zig
@@ -334,9 +334,7 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type
}
test "std.SegmentedList" {
- var da = std.heap.DirectAllocator.init();
- defer da.deinit();
- var a = &da.allocator;
+ var a = std.heap.direct_allocator;
try testSegmentedList(0, a);
try testSegmentedList(1, a);
diff --git a/std/special/build_runner.zig b/std/special/build_runner.zig
index a0a18d21d2..e88c3de7bd 100644
--- a/std/special/build_runner.zig
+++ b/std/special/build_runner.zig
@@ -17,10 +17,7 @@ pub fn main() !void {
// one shot program. We don't need to waste time freeing memory and finding places to squish
// bytes into. So we free everything all at once at the very end.
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var arena = std.heap.ArenaAllocator.init(&direct_allocator.allocator);
+ var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator);
defer arena.deinit();
const allocator = &arena.allocator;
diff --git a/std/statically_initialized_mutex.zig b/std/statically_initialized_mutex.zig
index 9c8b91c632..2ad47b5d91 100644
--- a/std/statically_initialized_mutex.zig
+++ b/std/statically_initialized_mutex.zig
@@ -80,11 +80,8 @@ test "std.StaticallyInitializedMutex" {
}
};
- var direct_allocator = std.heap.DirectAllocator.init();
- defer direct_allocator.deinit();
-
- var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 300 * 1024);
- defer direct_allocator.allocator.free(plenty_of_memory);
+ var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024);
+ defer std.heap.direct_allocator.free(plenty_of_memory);
var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
var a = &fixed_buffer_allocator.allocator;