register_tango.go raw

   1  // +build bytedance_tango
   2  
   3  /**
   4   * Copyright 2024 ByteDance Inc.
   5   *
   6   * Licensed under the Apache License, Version 2.0 (the "License");
   7   * you may not use this file except in compliance with the License.
   8   * You may obtain a copy of the License at
   9   *
  10   *     https://www.apache.org/licenses/LICENSE-2.0
  11   *
  12   * Unless required by applicable law or agreed to in writing, software
  13   * distributed under the License is distributed on an "AS IS" BASIS,
  14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15   * See the License for the specific language governing permissions and
  16   * limitations under the License.
  17   */
  18  
  19  package loader
  20  
  21  import (
  22      "sync"
  23  	_ "unsafe"
  24  )
  25  
  26  //go:linkname pluginsMu plugin.pluginsMu
  27  var pluginsMu sync.Mutex
  28  
  29  func registerModule(mod *moduledata) {
  30      pluginsMu.Lock()
  31      defer pluginsMu.Unlock()
  32      lastmoduledatap.next = mod
  33      lastmoduledatap = mod
  34  }
  35