func (s *Select) Scrub() (err error) {
	// obtain operation lock
	u := s.back.TryLock()
	if u == nil {
		return rh.ErrBusy
	}
	defer u.Unlock()
	//
	err = s.abort()
	switch err {
	case rh.ErrGone, nil:
		return nil
	default:
		return err
	}
}
// Scrub is like abort, but it will fail with rh.ErrBusy if Wait or Select is pending.
Scrub is like abort, but it will fail with rh.ErrBusy if Wait or Select is pending.
// Scrub is like abort but it will fail with rh . ErrBusy if Wait or Select is pending .
func (s *Select) Scrub() (err error) {
	u := s.back.TryLock()
	if u == nil {
		return rh.ErrBusy
	}
	defer u.Unlock()
	err = s.abort()
	switch err {
	case rh.ErrGone, nil:
		return nil
	default:
		return err
	}
}
func ( s * Select ) Scrub ( ) ( err error ) { u := s . back . TryLock ( ) if u == nil { return rh . ErrBusy } defer u . Unlock ( ) err = s . abort ( ) switch err { case rh . ErrGone , nil : return nil default : return err } }
Scrub is like abort, but it will fail with rh.ErrBusy if Wait or Select is pending.
Scrub is like abort but it will fail with rh . ErrBusy if Wait or Select is pending .
// obtain operation lock //