Esempio n. 1
0
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
}
Esempio n. 2
0
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
}
Esempio n. 3
0
func NewNaiv(n uint) *ImpNaiv {
	//
	return &ImpNaiv{p: uint32(n), s: sem.New(n)}
}
Esempio n. 4
0
func NewSem() *ImpSem {
	//
	return &ImpSem{mutex: sem.New(1), rw: sem.New(1)}
}