Don't convert uint64 to interface{} for the context key every time.
This accounts for ~80% of gcsfuse allocations.geesefs-0-30-9
parent
c968295acd
commit
9232b8275f
|
@ -32,7 +32,7 @@ import (
|
||||||
|
|
||||||
type contextKeyType uint64
|
type contextKeyType uint64
|
||||||
|
|
||||||
const contextKey contextKeyType = 0
|
var contextKey interface{} = contextKeyType(0)
|
||||||
|
|
||||||
// Ask the Linux kernel for larger read requests.
|
// Ask the Linux kernel for larger read requests.
|
||||||
//
|
//
|
||||||
|
@ -447,7 +447,9 @@ func (c *Connection) ReadOp() (ctx context.Context, op interface{}, err error) {
|
||||||
// LOCKS_EXCLUDED(c.mu)
|
// LOCKS_EXCLUDED(c.mu)
|
||||||
func (c *Connection) Reply(ctx context.Context, opErr error) {
|
func (c *Connection) Reply(ctx context.Context, opErr error) {
|
||||||
// Extract the state we stuffed in earlier.
|
// Extract the state we stuffed in earlier.
|
||||||
state, ok := ctx.Value(contextKey).(opState)
|
var key interface{} = contextKey
|
||||||
|
foo := ctx.Value(key)
|
||||||
|
state, ok := foo.(opState)
|
||||||
if !ok {
|
if !ok {
|
||||||
panic(fmt.Sprintf("Reply called with invalid context: %#v", ctx))
|
panic(fmt.Sprintf("Reply called with invalid context: %#v", ctx))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue