示例#1
0
文件: imp.go 项目: CaptainSoOmA/Uni
func New(n uint) *Imp {
	//
	if n < 2 {
		return nil
	}
	x := new(Imp)
	x.involved = n
	x.mutex = sem.New(1)
	x.s = sem.New(0)
	return x
}
示例#2
0
文件: imp.go 项目: CaptainSoOmA/Uni
func New(n uint) *Imp {
	//
	x := new(Imp)
	x.val = int(n)
	for i := 0; i < M; i++ {
		x.b[i] = sem.New(0)
	}
	return x
}
示例#3
0
func NewNaiv(n uint) *ImpNaiv {
	//
	return &ImpNaiv{p: uint32(n), s: sem.New(n)}
}
示例#4
0
func NewSem() *ImpSem {
	//
	return &ImpSem{mutex: sem.New(1), rw: sem.New(1)}
}