module sync

pub struct Channel {
	arr array
}

pub fn new_channel<T>(n u32) &Channel {
	return &Channel{arr, new_array()}
}

pub fn (mut ch Channel) close() {}

pub fn (mut ch Channel) push(src voidptr) {
	#array_push(ch.val.arr,src)
}

pub fn (ch Channel) len() int {
	return ch.arr.len
}

pub fn (ch Channel) closed() bool {
	return false
}

pub fn (mut ch Channel) pop(dest voidptr) {
	#dest.val = array_pop(ch.val.arr)
}