Skip to content
Snippets Groups Projects
Select Git revision
  • c8e2b3a85e5b239f450c1bf1d56c08cfc7eda3a8
  • master default
  • spf-permerror
  • irc-reload
  • alert-http-vhosts
  • mail-trixie
  • theme-link-folio
  • pandora
  • footnotes-made-easy
  • noblogs-dns-file
  • service-ordering
  • rt5
  • testdata-artifacts-rm
  • outbound-proxy
  • egress-mail
  • garage
  • mailman3-add
  • mailman3-experimental
  • gancio
  • php-hardening
  • simplify-roundcube-config
21 results

configuration.md

Blame
  • intern.go 790 B
    // Package intern interns strings.
    // Interning is best effort only.
    // Interned strings may be removed automatically
    // at any time without notification.
    // All functions may be called concurrently
    // with themselves and each other.
    package intern
    
    import "sync"
    
    var (
    	pool sync.Pool = sync.Pool{
    		New: func() interface{} {
    			return make(map[string]string)
    		},
    	}
    )
    
    // String returns s, interned.
    func String(s string) string {
    	m := pool.Get().(map[string]string)
    	c, ok := m[s]
    	if ok {
    		pool.Put(m)
    		return c
    	}
    	m[s] = s
    	pool.Put(m)
    	return s
    }
    
    // Bytes returns b converted to a string, interned.
    func Bytes(b []byte) string {
    	m := pool.Get().(map[string]string)
    	c, ok := m[string(b)]
    	if ok {
    		pool.Put(m)
    		return c
    	}
    	s := string(b)
    	m[s] = s
    	pool.Put(m)
    	return s
    }