/
mutex.gen.go
106 lines (84 loc) · 2.69 KB
/
mutex.gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package godot
import (
"github.com/shadowapex/godot-go/gdnative"
)
/*------------------------------------------------------------------------------
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. Any updates should be done in
// "class.go.tmpl" so they can be included in the generated
// code.
//----------------------------------------------------------------------------*/
//func NewMutexFromPointer(ptr gdnative.Pointer) Mutex {
func new_MutexFromPointer(ptr gdnative.Pointer) Mutex {
owner := gdnative.NewObjectFromPointer(ptr)
obj := Mutex{}
obj.SetBaseObject(owner)
return obj
}
/*
A synchronization Mutex. Element used to synchronize multiple [Thread]s. Basically a binary [Semaphore]. Guarantees that only one thread can ever acquire this lock at a time. Can be used to protect a critical section. Be careful to avoid deadlocks.
*/
type Mutex struct {
Reference
owner gdnative.Object
}
func (o *Mutex) BaseClass() string {
return "_Mutex"
}
/*
Undocumented
Args: [], Returns: void
*/
func (o *Mutex) Lock() {
//log.Println("Calling _Mutex.Lock()")
// Build out the method's arguments
ptrArguments := make([]gdnative.Pointer, 0, 0)
// Get the method bind
methodBind := gdnative.NewMethodBind("_Mutex", "lock")
// Call the parent method.
// void
retPtr := gdnative.NewEmptyVoid()
gdnative.MethodBindPtrCall(methodBind, o.GetBaseObject(), ptrArguments, retPtr)
}
/*
Undocumented
Args: [], Returns: enum.Error
*/
func (o *Mutex) TryLock() gdnative.Error {
//log.Println("Calling _Mutex.TryLock()")
// Build out the method's arguments
ptrArguments := make([]gdnative.Pointer, 0, 0)
// Get the method bind
methodBind := gdnative.NewMethodBind("_Mutex", "try_lock")
// Call the parent method.
// enum.Error
retPtr := gdnative.NewEmptyInt()
gdnative.MethodBindPtrCall(methodBind, o.GetBaseObject(), ptrArguments, retPtr)
// If we have a return type, convert it from a pointer into its actual object.
ret := gdnative.NewIntFromPointer(retPtr)
return gdnative.Error(ret)
}
/*
Undocumented
Args: [], Returns: void
*/
func (o *Mutex) Unlock() {
//log.Println("Calling _Mutex.Unlock()")
// Build out the method's arguments
ptrArguments := make([]gdnative.Pointer, 0, 0)
// Get the method bind
methodBind := gdnative.NewMethodBind("_Mutex", "unlock")
// Call the parent method.
// void
retPtr := gdnative.NewEmptyVoid()
gdnative.MethodBindPtrCall(methodBind, o.GetBaseObject(), ptrArguments, retPtr)
}
// MutexImplementer is an interface that implements the methods
// of the Mutex class.
type MutexImplementer interface {
ReferenceImplementer
Lock()
Unlock()
}