lab.nexedi.com/kirr/go123@v0.0.0-20240207185015-8299741fa871/tracing/internal/xruntime/race.go (about)

     1  // Copyright (C) 2017  Nexedi SA and Contributors.
     2  //                     Kirill Smelkov <kirr@nexedi.com>
     3  //
     4  // This program is free software: you can Use, Study, Modify and Redistribute
     5  // it under the terms of the GNU General Public License version 3, or (at your
     6  // option) any later version, as published by the Free Software Foundation.
     7  //
     8  // You can also Link and Combine this program with other software covered by
     9  // the terms of any of the Free Software licenses or any of the Open Source
    10  // Initiative approved licenses and Convey the resulting work. Corresponding
    11  // source of such a combination shall include the source code for all other
    12  // software used.
    13  //
    14  // This program is distributed WITHOUT ANY WARRANTY; without even the implied
    15  // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    16  //
    17  // See COPYING file for full licensing terms.
    18  // See https://www.nexedi.com/licensing for rationale and options.
    19  
    20  //go:build race
    21  // +build race
    22  
    23  package xruntime
    24  
    25  import "lab.nexedi.com/kirr/go123/tracing/internal/race"
    26  
    27  // RaceIgnoreBegin instructs race-detector to ignore memory read/write events from current goroutine.
    28  //
    29  // The events will be back to handled after call to RaceIgnoreEnd.
    30  //
    31  // NOTE runtime.RaceDisable disables "sync" events, not memory read/write.
    32  func RaceIgnoreBegin() {
    33  	race.IgnoreBegin(getg().racectx)
    34  }
    35  
    36  // RaceIgnoreEnd instructs race-detector to stop ignoring memory read/write events from current goroutine.
    37  //
    38  // NOTE runtime RaceEnable enables "sync" events, not memory read/write.
    39  func RaceIgnoreEnd() {
    40  	race.IgnoreEnd(getg().racectx)
    41  }