forked from GitHub/bdwgc-rust
Remove alloc method
This commit is contained in:
@@ -1,14 +1,17 @@
|
|||||||
extern crate bdwgc_allocator;
|
extern crate bdwgc_allocator;
|
||||||
|
|
||||||
|
use bdwgc_allocator::Allocator;
|
||||||
|
use std::alloc::{GlobalAlloc, Layout};
|
||||||
|
|
||||||
#[global_allocator]
|
#[global_allocator]
|
||||||
static GLOBAL_ALLOCATOR: bdwgc_allocator::Allocator = bdwgc_allocator::Allocator;
|
static GLOBAL_ALLOCATOR: Allocator = Allocator;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
unsafe { bdwgc_allocator::Allocator::initialize() }
|
unsafe { Allocator::initialize() }
|
||||||
|
|
||||||
let mut _n = bdwgc_allocator::Allocator::alloc(2 ^ 8);
|
let mut _n = unsafe { GLOBAL_ALLOCATOR.alloc(Layout::from_size_align(2 ^ 8, 8).unwrap()) };
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
_n = bdwgc_allocator::Allocator::alloc(2 ^ 8)
|
_n = unsafe { GLOBAL_ALLOCATOR.alloc(Layout::from_size_align(2 ^ 8, 8).unwrap()) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,21 @@
|
|||||||
extern crate bdwgc_allocator;
|
extern crate bdwgc_allocator;
|
||||||
|
|
||||||
|
use bdwgc_allocator::Allocator;
|
||||||
|
use std::alloc::{GlobalAlloc, Layout};
|
||||||
|
|
||||||
#[global_allocator]
|
#[global_allocator]
|
||||||
static GLOBAL_ALLOCATOR: bdwgc_allocator::Allocator = bdwgc_allocator::Allocator;
|
static GLOBAL_ALLOCATOR: Allocator = Allocator;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
unsafe { bdwgc_allocator::Allocator::initialize() }
|
unsafe { Allocator::initialize() }
|
||||||
|
|
||||||
let handle = std::thread::spawn(move || {
|
let handle = std::thread::spawn(move || {
|
||||||
bdwgc_allocator::Allocator::register_current_thread().unwrap();
|
Allocator::register_current_thread().unwrap();
|
||||||
|
|
||||||
let mut _n = bdwgc_allocator::Allocator::alloc(2 ^ 8);
|
let mut _n = unsafe { GLOBAL_ALLOCATOR.alloc(Layout::from_size_align(2 ^ 8, 8).unwrap()) };
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
_n = bdwgc_allocator::Allocator::alloc(2 ^ 8)
|
_n = unsafe { GLOBAL_ALLOCATOR.alloc(Layout::from_size_align(2 ^ 8, 8).unwrap()) }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ use libc::{c_int, c_void, size_t};
|
|||||||
use std::alloc::{GlobalAlloc, Layout};
|
use std::alloc::{GlobalAlloc, Layout};
|
||||||
|
|
||||||
const GC_SUCCESS: c_int = 0;
|
const GC_SUCCESS: c_int = 0;
|
||||||
const ALLOC_ALIGN: usize = 8;
|
|
||||||
|
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
struct GCStackBase {
|
struct GCStackBase {
|
||||||
@@ -51,10 +50,6 @@ impl Allocator {
|
|||||||
pub fn unregister_current_thread() {
|
pub fn unregister_current_thread() {
|
||||||
unsafe { GC_unregister_my_thread() }
|
unsafe { GC_unregister_my_thread() }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn alloc(size: usize) -> *mut u8 {
|
|
||||||
unsafe { Allocator.alloc(Layout::from_size_align_unchecked(size, ALLOC_ALIGN)) }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl GlobalAlloc for Allocator {
|
unsafe impl GlobalAlloc for Allocator {
|
||||||
|
|||||||
Reference in New Issue
Block a user