// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build !debuglog

package runtime

const dlogEnabled = false

type dlogger = dloggerFake

func dlog1() dloggerFake {
	return dlogFake()
}

type dlogPerM struct{}

func getCachedDlogger() *dloggerImpl {
	return nil
}

func putCachedDlogger(l *dloggerImpl) bool {
	return false
}
