28 lines
		
	
	
		
			426 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			426 B
		
	
	
	
		
			V
		
	
	
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)
 | 
						|
}
 |