@@ -66,21 +66,21 @@ func allocWrapper(typ *C.PyTypeObject, obj any) *wrapperType {
6666 wrapper := (* wrapperType )(unsafe .Pointer (self ))
6767 holder := new (objectHolder )
6868 holder .obj = obj
69- maps := getCurrentThreadData ()
69+ maps := getGlobalData ()
7070 maps .holders .PushFront (holder )
7171 wrapper .goObj = holder .obj
7272 wrapper .holder = holder
7373 return wrapper
7474}
7575
7676func freeWrapper (wrapper * wrapperType ) {
77- maps := getCurrentThreadData ()
77+ maps := getGlobalData ()
7878 maps .holders .Remove (wrapper .holder )
7979}
8080
8181//export wrapperAlloc
8282func wrapperAlloc (typ * C.PyTypeObject , size C.Py_ssize_t ) * C.PyObject {
83- maps := getCurrentThreadData ()
83+ maps := getGlobalData ()
8484 meta := maps .typeMetas [(* C .PyObject )(unsafe .Pointer (typ ))]
8585 wrapper := allocWrapper (typ , reflect .New (meta .typ ).Interface ())
8686 if wrapper == nil {
@@ -99,7 +99,7 @@ func wrapperDealloc(self *C.PyObject) {
9999//export wrapperInit
100100func wrapperInit (self , args * C.PyObject ) C.int {
101101 typ := (* C .PyObject )(self ).ob_type
102- maps := getCurrentThreadData ()
102+ maps := getGlobalData ()
103103 typeMeta := maps .typeMetas [(* C .PyObject )(unsafe .Pointer (typ ))]
104104 if typeMeta .init == nil {
105105 return 0
@@ -112,7 +112,7 @@ func wrapperInit(self, args *C.PyObject) C.int {
112112
113113//export getterMethod
114114func getterMethod (self * C.PyObject , _closure unsafe.Pointer , methodId C.int ) * C.PyObject {
115- maps := getCurrentThreadData ()
115+ maps := getGlobalData ()
116116 typeMeta := maps .typeMetas [(* C .PyObject )(unsafe .Pointer (self .ob_type ))]
117117 if typeMeta == nil {
118118 SetError (fmt .Errorf ("type %v not registered" , FromPy (self )))
@@ -157,7 +157,7 @@ func getterMethod(self *C.PyObject, _closure unsafe.Pointer, methodId C.int) *C.
157157
158158//export setterMethod
159159func setterMethod (self , value * C.PyObject , _closure unsafe.Pointer , methodId C.int ) C.int {
160- maps := getCurrentThreadData ()
160+ maps := getGlobalData ()
161161 typeMeta := maps .typeMetas [(* C .PyObject )(unsafe .Pointer (self .ob_type ))]
162162 if typeMeta == nil {
163163 SetError (fmt .Errorf ("type %v not registered" , FromPy (self )))
@@ -238,7 +238,7 @@ func wrapperMethod(self, args *C.PyObject, methodId C.int) *C.PyObject {
238238 key = (* C .PyObject )(unsafe .Pointer (self .ob_type ))
239239 }
240240
241- maps := getCurrentThreadData ()
241+ maps := getGlobalData ()
242242 typeMeta , ok := maps .typeMetas [key ]
243243 if ! ok {
244244 SetError (fmt .Errorf ("type %v not registered" , FromPy (key )))
@@ -457,7 +457,7 @@ func (m Module) AddType(obj, init any, name, doc string) Object {
457457 }
458458
459459 // Check if type already registered
460- maps := getCurrentThreadData ()
460+ maps := getGlobalData ()
461461 if pyType , ok := maps .pyTypes [ty ]; ok {
462462 return newObject (pyType )
463463 }
@@ -569,7 +569,7 @@ func (m Module) AddType(obj, init any, name, doc string) Object {
569569 }
570570 // Recursively register struct types
571571 if fieldType .Kind () == reflect .Struct {
572- maps := getCurrentThreadData ()
572+ maps := getGlobalData ()
573573 if _ , ok := maps .pyTypes [fieldType ]; ! ok {
574574 // Generate a unique type name based on package path and type name
575575 nestedName := fieldType .Name ()
@@ -600,7 +600,7 @@ func (m Module) AddMethod(name string, fn any, doc string) Func {
600600 name = goNameToPythonName (name )
601601 doc = name + doc
602602
603- maps := getCurrentThreadData ()
603+ maps := getGlobalData ()
604604 meta , ok := maps .typeMetas [m .obj ]
605605 if ! ok {
606606 meta = & typeMeta {
0 commit comments