Source File
export.go
Belonging Package
golang.org/x/tools/internal/event/core
// 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.package coreimport ()// Exporter is a function that handles events.// It may return a modified context and event.type Exporter func(context.Context, Event, label.Map) context.Contextvar (exporter unsafe.Pointer)// SetExporter sets the global exporter function that handles all events.// The exporter is called synchronously from the event call site, so it should// return quickly so as not to hold up user code.func ( Exporter) {:= unsafe.Pointer(&)if == nil {// &e is always valid, and so p is always valid, but for the early abort// of ProcessEvent to be efficient it needs to make the nil check on the// pointer without having to dereference it, so we make the nil function// also a nil pointer= nil}atomic.StorePointer(&exporter, )}// deliver is called to deliver an event to the supplied exporter.// it will fill in the time.func ( context.Context, Exporter, Event) context.Context {// add the current time to the event.at = time.Now()// hand the event off to the current exporterreturn (, , )}// Export is called to deliver an event to the global exporter if set.func ( context.Context, Event) context.Context {// get the global exporter and abort early if there is not one:= (*Exporter)(atomic.LoadPointer(&exporter))if == nil {return}return deliver(, *, )}// ExportPair is called to deliver a start event to the supplied exporter.// It also returns a function that will deliver the end event to the same// exporter.// It will fill in the time.func ( context.Context, , Event) (context.Context, func()) {// get the global exporter and abort early if there is not one:= (*Exporter)(atomic.LoadPointer(&exporter))if == nil {return , func() {}}= deliver(, *, )return , func() { deliver(, *, ) }}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)