summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/loader/stubs.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/loader/stubs.go')
-rw-r--r--vendor/github.com/bytedance/sonic/loader/stubs.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/vendor/github.com/bytedance/sonic/loader/stubs.go b/vendor/github.com/bytedance/sonic/loader/stubs.go
index 71439c4b7..8377649b7 100644
--- a/vendor/github.com/bytedance/sonic/loader/stubs.go
+++ b/vendor/github.com/bytedance/sonic/loader/stubs.go
@@ -1,12 +1,12 @@
/**
* Copyright 2023 ByteDance Inc.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,16 +17,21 @@
package loader
import (
- _ `unsafe`
+ `sync`
+ _ `unsafe`
)
//go:linkname lastmoduledatap runtime.lastmoduledatap
//goland:noinspection GoUnusedGlobalVariable
var lastmoduledatap *moduledata
+var moduledataMux sync.Mutex
+
func registerModule(mod *moduledata) {
+ moduledataMux.Lock()
lastmoduledatap.next = mod
lastmoduledatap = mod
+ moduledataMux.Unlock()
}
//go:linkname moduledataverify1 runtime.moduledataverify1