mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
sync: make new_mutex() and new_waitgroup() return &Mutex and &Waitgroup
This commit is contained in:
parent
bc64263dd8
commit
0d52cc97e4
@ -63,15 +63,11 @@ fn main() {
|
||||
}
|
||||
ids = tmp
|
||||
}
|
||||
wg := sync.new_waitgroup()
|
||||
mtx := sync.new_mutex()
|
||||
mut fetcher := &Fetcher{
|
||||
ids: ids
|
||||
mu: 0
|
||||
wg: 0
|
||||
mu: sync.new_mutex()
|
||||
wg: sync.new_waitgroup()
|
||||
}
|
||||
fetcher.mu = &mtx
|
||||
fetcher.wg = &wg
|
||||
fetcher.wg.add(ids.len)
|
||||
for i := 0; i < nr_threads; i++ {
|
||||
go fetcher.fetch()
|
||||
|
@ -103,7 +103,7 @@ pub struct Clipboard {
|
||||
selection Atom //the selection atom
|
||||
window Window
|
||||
atoms []Atom
|
||||
mutex sync.Mutex
|
||||
mutex &sync.Mutex
|
||||
text string // text data sent or received
|
||||
got_text bool // used to confirm that we have got the text
|
||||
is_owner bool // to save selection owner state
|
||||
@ -137,7 +137,7 @@ fn new_x11_clipboard(selection atom_type) &Clipboard {
|
||||
|
||||
if display == C.NULL {
|
||||
println("ERROR: No X Server running. Clipboard cannot be used.")
|
||||
return &Clipboard{ display: 0 }
|
||||
return &Clipboard{ display: 0 mutex: sync.new_mutex() }
|
||||
}
|
||||
|
||||
mut cb := &Clipboard{
|
||||
|
@ -16,9 +16,8 @@ pub struct Mutex {
|
||||
mutex C.pthread_mutex_t
|
||||
}
|
||||
|
||||
pub fn new_mutex() Mutex {
|
||||
m := Mutex{
|
||||
}
|
||||
pub fn new_mutex() &Mutex {
|
||||
m := &Mutex{}
|
||||
C.pthread_mutex_init(&m.mutex, C.NULL)
|
||||
return m
|
||||
}
|
||||
|
@ -39,8 +39,8 @@ const (
|
||||
WAIT_FAILED = 0xFFFFFFFF
|
||||
)
|
||||
|
||||
pub fn new_mutex() Mutex {
|
||||
sm := Mutex{}
|
||||
pub fn new_mutex() &Mutex {
|
||||
sm := &Mutex{}
|
||||
unsafe {
|
||||
mut m := sm
|
||||
m.mx = C.CreateMutex(0, false, 0)
|
||||
@ -48,8 +48,8 @@ pub fn new_mutex() Mutex {
|
||||
m.state = .broken // handle broken and mutex state are broken
|
||||
return sm
|
||||
}
|
||||
return sm
|
||||
}
|
||||
return sm
|
||||
}
|
||||
|
||||
pub fn (m mut Mutex) lock() {
|
||||
|
@ -5,15 +5,12 @@ module sync
|
||||
// [init_with=new_waitgroup] // TODO: implement support for init_with struct attribute, and disallow WaitGroup{} from outside the sync.new_waitgroup() function.
|
||||
pub struct WaitGroup {
|
||||
mut:
|
||||
mu Mutex
|
||||
mu &Mutex = &Mutex(0)
|
||||
active int
|
||||
}
|
||||
|
||||
pub fn new_waitgroup() WaitGroup {
|
||||
mut w := WaitGroup{
|
||||
}
|
||||
w.mu = sync.new_mutex()
|
||||
return w
|
||||
pub fn new_waitgroup() &WaitGroup {
|
||||
return &WaitGroup{mu: sync.new_mutex() }
|
||||
}
|
||||
|
||||
pub fn (wg mut WaitGroup) add(delta int) {
|
||||
|
Loading…
Reference in New Issue
Block a user