Search Options

Results per page
Sort
Preferred Languages
Advance

Results 21 - 30 of 43 for SafeClose (0.17 sec)

  1. cmd/erasure-server-pool-rebalance.go

    	}
    	return false
    }
    
    func (z *erasureServerPools) rebalanceBuckets(ctx context.Context, poolIdx int) (err error) {
    	doneCh := make(chan error, 1)
    	defer xioutil.SafeClose(doneCh)
    
    	// Save rebalance.bin periodically.
    	go func() {
    		// Update rebalance.bin periodically once every 5-10s, chosen randomly
    		// to avoid multiple pool leaders herding to update around the same
    		// time.
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 26 19:29:28 GMT 2024
    - 27.2K bytes
    - Viewed (0)
  2. internal/grid/connection.go

    		c.connChange.L.Unlock()
    		// Happy path.
    		return nil
    	}
    	ctx, cancel := context.WithCancel(ctx)
    	defer cancel()
    	changed := make(chan State, 1)
    	go func() {
    		defer xioutil.SafeClose(changed)
    		for {
    			c.connChange.Wait()
    			newState := c.State()
    			select {
    			case changed <- newState:
    				if newState == StateConnected || newState == StateShutdown {
    					c.connChange.L.Unlock()
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Thu Apr 04 12:04:40 GMT 2024
    - 42.6K bytes
    - Viewed (0)
  3. internal/ioutil/ioutil.go

    			// that we promised that we would write.
    			if totalSize > 0 && written != totalSize {
    				return written, io.ErrUnexpectedEOF
    			}
    			return written, nil
    		}
    	}
    }
    
    // SafeClose safely closes any channel of any type
    func SafeClose[T any](c chan<- T) {
    	if c != nil {
    		close(c)
    		return
    	}
    	// Print stack to check who is sending `c` as `nil`
    	// without crashing the server.
    	debug.PrintStack()
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 19 11:26:59 GMT 2024
    - 10.3K bytes
    - Viewed (0)
  4. cmd/xl-storage.go

    	defer func() {
    		res := make(map[string]string)
    		if err != nil {
    			res["err"] = err.Error()
    		}
    		stopFn(res)
    	}()
    
    	// Updates must be closed before we return.
    	defer xioutil.SafeClose(updates)
    	var lc *lifecycle.Lifecycle
    
    	// Check if the current bucket has a configured lifecycle policy
    	if globalLifecycleSys != nil {
    		lc, err = globalLifecycleSys.Get(cache.Info.Name)
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Sun Apr 28 17:53:50 GMT 2024
    - 84.7K bytes
    - Viewed (0)
  5. internal/dsync/drwmutex.go

    			// Refreshing is canceled
    			return false, ctx.Err()
    		}
    		if done {
    			break
    		}
    	}
    
    	// We may have some unused results in ch, release them async.
    	go func() {
    		wg.Wait()
    		xioutil.SafeClose(ch)
    		for range ch {
    		}
    	}()
    
    	noQuorum := lockNotFound > len(restClnts)-quorum
    	return noQuorum, nil
    }
    
    // lock tries to acquire the distributed lock, returning true or false.
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Thu Feb 22 06:26:06 GMT 2024
    - 19.7K bytes
    - Viewed (0)
  6. cmd/erasure-object.go

    	}
    
    	done := make(chan bool, er.setDriveCount)
    	disks := er.getDisks()
    
    	ropts := ReadOptions{
    		ReadData: readData,
    		Healing:  false,
    	}
    
    	mrfCheck := make(chan FileInfo)
    	defer xioutil.SafeClose(mrfCheck)
    
    	var rw sync.Mutex
    
    	// Ask for all disks first;
    	go func() {
    		ctx, cancel := context.WithCancel(ctx)
    		defer cancel()
    
    		wg := sync.WaitGroup{}
    		for i, disk := range disks {
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Sun May 05 16:56:21 GMT 2024
    - 77.2K bytes
    - Viewed (2)
  7. cmd/notification.go

    						return
    					}
    				case <-ctx.Done():
    					return
    				}
    			}
    		}(ctx, peerChannels[index], &wg)
    	}
    	go func(wg *sync.WaitGroup, ch chan MetricV2) {
    		wg.Wait()
    		xioutil.SafeClose(ch)
    	}(&wg, ch)
    	return ch
    }
    
    // GetBucketMetrics - gets the cluster level bucket metrics from all nodes excluding self.
    func (sys *NotificationSys) GetBucketMetrics(ctx context.Context) <-chan MetricV2 {
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 12 18:13:36 GMT 2024
    - 44.5K bytes
    - Viewed (0)
  8. cmd/erasure-decode.go

    	if p.offset+p.shardSize > p.shardFileSize {
    		p.shardSize = p.shardFileSize - p.offset
    	}
    	if p.shardSize == 0 {
    		return newBuf, nil
    	}
    
    	readTriggerCh := make(chan bool, len(p.readers))
    	defer xioutil.SafeClose(readTriggerCh) // close the channel upon return
    
    	for i := 0; i < p.dataBlocks; i++ {
    		// Setup read triggers for p.dataBlocks number of reads so that it reads in parallel.
    		readTriggerCh <- true
    	}
    
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 19 16:44:59 GMT 2024
    - 9.4K bytes
    - Viewed (0)
  9. cmd/metrics-v2.go

    // `api` label values.
    func getHistogramMetrics(hist *prometheus.HistogramVec, desc MetricDescription, toLowerAPILabels bool) []MetricV2 {
    	ch := make(chan prometheus.Metric)
    	go func() {
    		defer xioutil.SafeClose(ch)
    		// Collects prometheus metrics from hist and sends it over ch
    		hist.Collect(ch)
    	}()
    
    	// Converts metrics received into internal []Metric type
    	var metrics []MetricV2
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Thu Apr 25 22:01:31 GMT 2024
    - 132.6K bytes
    - Viewed (0)
  10. cmd/sftp-server-driver.go

    			return clnt.RemoveBucket(cctx, bucket)
    		}
    
    		objectsCh := make(chan minio.ObjectInfo)
    
    		// Send object names that are needed to be removed to objectsCh
    		go func() {
    			defer xioutil.SafeClose(objectsCh)
    			opts := minio.ListObjectsOptions{
    				Prefix:    prefix,
    				Recursive: true,
    			}
    			for object := range clnt.ListObjects(cctx, bucket, opts) {
    				if object.Err != nil {
    					return
    				}
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 19 12:23:42 GMT 2024
    - 12.9K bytes
    - Viewed (0)
Back to top