Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 26 for SafeClose (0.07 sec)

  1. internal/grid/muxclient.go

    	defer m.respMu.Unlock()
    	if !m.closed {
    		m.respErr.Store(&err)
    		// Do not block.
    		select {
    		case respHandler <- Response{Err: err}:
    			xioutil.SafeClose(respHandler)
    		default:
    			go func() {
    				respHandler <- Response{Err: err}
    				xioutil.SafeClose(respHandler)
    			}()
    		}
    		gridLogIf(m.ctx, m.sendLocked(message{Op: OpDisconnectServerMux, MuxID: m.MuxID}))
    		m.closed = true
    	}
    }
    
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Fri Jun 07 15:51:52 UTC 2024
    - 15.9K bytes
    - Viewed (0)
  2. cmd/batch-expire.go

    				VersionsSort: WalkVersionsSortDesc,
    			})
    			if err != nil {
    				cancelCause(err)
    				xioutil.SafeClose(results)
    				return
    			}
    			for result := range prefixResultCh {
    				results <- result
    			}
    		}
    		xioutil.SafeClose(results)
    	}()
    
    	// Goroutine to periodically save batch-expire job's in-memory state
    	saverQuitCh := make(chan struct{})
    	go func() {
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Wed Sep 18 17:59:03 UTC 2024
    - 21.9K bytes
    - Viewed (0)
  3. cmd/perf-tests.go

    					if err != nil {
    						errStr = fmt.Sprintf("error with %s: %s", globalNotificationSys.peerClients[index].String(), err.Error())
    					}
    				}()
    			}
    		}(index)
    	}
    
    	time.Sleep(duration)
    	xioutil.SafeClose(r.eof)
    	wg.Wait()
    	for {
    		if globalNetPerfRX.ActiveConnections() == 0 {
    			break
    		}
    		time.Sleep(time.Second)
    	}
    	rx := float64(globalNetPerfRX.RXSample)
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Fri May 24 23:05:23 UTC 2024
    - 11.8K bytes
    - Viewed (0)
  4. cmd/metacache-server-pool.go

    				returned = funcReturned
    				funcReturnedMu.Unlock()
    				outCh <- entry
    				if returned {
    					xioutil.SafeClose(outCh)
    				}
    			}
    			entry.reusable = returned
    			saveCh <- entry
    		}
    		if !returned {
    			xioutil.SafeClose(outCh)
    		}
    		xioutil.SafeClose(saveCh)
    	}()
    
    	entries, err = filteredResults()
    	if err == nil {
    		// Check if listing recorded an error.
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Fri Jul 12 16:23:16 UTC 2024
    - 12.7K bytes
    - Viewed (0)
  5. internal/grid/handlers.go

    		}
    		go func() {
    			defer xioutil.SafeClose(stream.Requests)
    			for req := range reqT {
    				b, err := req.MarshalMsg(GetByteBufferCap(req.Msgsize()))
    				if err != nil {
    					gridLogOnceIf(ctx, err, err.Error())
    				}
    				h.PutRequest(req)
    				stream.Requests <- b
    			}
    		}()
    	} else if stream.Requests != nil {
    		xioutil.SafeClose(stream.Requests)
    	}
    
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Mon Sep 09 16:58:30 UTC 2024
    - 27.7K bytes
    - Viewed (0)
  6. cmd/storage-rest-server.go

    func (c *closeNotifier) Read(p []byte) (n int, err error) {
    	n, err = c.rc.Read(p)
    	if err != nil {
    		if c.done != nil {
    			xioutil.SafeClose(c.done)
    			c.done = nil
    		}
    	}
    	return n, err
    }
    
    func (c *closeNotifier) Close() error {
    	if c.done != nil {
    		xioutil.SafeClose(c.done)
    		c.done = nil
    	}
    	return c.rc.Close()
    }
    
    // keepHTTPReqResponseAlive can be used to avoid timeouts with long storage
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Wed Aug 14 17:11:51 UTC 2024
    - 45.7K bytes
    - Viewed (0)
  7. cmd/erasure.go

    		}
    	}
    	for _, idx := range permutes {
    		b := buckets[idx]
    		if e := oldCache.find(b.Name); e != nil {
    			cache.replace(b.Name, dataUsageRoot, *e)
    			bucketCh <- b
    		}
    	}
    	xioutil.SafeClose(bucketCh)
    
    	bucketResults := make(chan dataUsageEntryInfo, len(disks))
    
    	// Start async collector/saver.
    	// This goroutine owns the cache.
    	var saverWg sync.WaitGroup
    	saverWg.Add(1)
    	go func() {
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Fri Oct 04 22:23:33 UTC 2024
    - 16.1K bytes
    - Viewed (0)
  8. 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()
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Fri Jul 26 12:55:01 UTC 2024
    - 10.9K bytes
    - Viewed (0)
  9. cmd/storage-rest-client.go

    	return nil
    }
    
    func (client *storageRESTClient) NSScanner(ctx context.Context, cache dataUsageCache, updates chan<- dataUsageEntry, scanMode madmin.HealScanMode, _ func() bool) (dataUsageCache, error) {
    	defer xioutil.SafeClose(updates)
    
    	st, err := storageNSScannerRPC.Call(ctx, client.gridConn, &nsScannerOptions{
    		DiskID:   *client.diskID.Load(),
    		ScanMode: int(scanMode),
    		Cache:    &cache,
    	})
    	if err != nil {
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Sun Oct 13 13:07:21 UTC 2024
    - 30.2K bytes
    - Viewed (0)
  10. 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.
    Registered: Sun Nov 03 19:28:11 UTC 2024
    - Last Modified: Mon Sep 09 15:49:49 UTC 2024
    - 20.4K bytes
    - Viewed (0)
Back to top