Skip to content

Commit 0de1745

Browse files
author
hekangning
committed
update README.md
1 parent 5014abc commit 0de1745

2 files changed

Lines changed: 51 additions & 32 deletions

File tree

README.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,30 +87,39 @@ func test1(g *godisson.Godisson) {
8787
} else if err != nil {
8888
log.Fatalln(err)
8989
}
90+
time.Sleep(10 * time.Second)
9091
}
9192

9293
func test2(g *godisson.Godisson) {
9394
m1 := g.NewMutex("godisson")
9495
m2 := g.NewMutex("godisson")
9596

96-
err := m1.TryLock(-1, 20000)
97-
if errors.Is(err, godisson.ErrLockNotObtained) {
98-
log.Println("can't obtained lock")
99-
} else if err != nil {
100-
log.Fatalln(err)
101-
}
102-
time.Sleep(10 * time.Second)
103-
m1.Unlock()
97+
go func() {
98+
err := m1.TryLock(-1, 20000)
99+
if errors.Is(err, godisson.ErrLockNotObtained) {
100+
log.Println("can't obtained lock")
101+
} else if err != nil {
102+
log.Fatalln(err)
103+
}
104+
time.Sleep(10 * time.Second)
105+
m1.Unlock()
106+
}()
104107

105108
// waitTime > 0, after 10 milliseconds will obtain the lock
106-
err = m2.TryLock(12000, 20000)
107-
if errors.Is(err, godisson.ErrLockNotObtained) {
108-
log.Println("m2 must not obtained lock")
109-
} else if err != nil {
110-
log.Fatalln(err)
111-
}
112-
time.Sleep(10 * time.Second)
113-
defer m2.Unlock()
109+
go func() {
110+
time.Sleep(1 * time.Second)
111+
112+
err := m2.TryLock(15000, 20000)
113+
if errors.Is(err, godisson.ErrLockNotObtained) {
114+
log.Println("m2 must not obtained lock")
115+
} else if err != nil {
116+
log.Fatalln(err)
117+
}
118+
time.Sleep(10 * time.Second)
119+
120+
m2.Unlock()
121+
}()
122+
114123
}
115124

116125
```

examples/mutex.go

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,28 +44,38 @@ func test1(g *godisson.Godisson) {
4444
} else if err != nil {
4545
log.Fatalln(err)
4646
}
47+
time.Sleep(10 * time.Second)
4748
}
4849

4950
func test2(g *godisson.Godisson) {
5051
m1 := g.NewMutex("godisson")
5152
m2 := g.NewMutex("godisson")
5253

53-
err := m1.TryLock(-1, 20000)
54-
if errors.Is(err, godisson.ErrLockNotObtained) {
55-
log.Println("can't obtained lock")
56-
} else if err != nil {
57-
log.Fatalln(err)
58-
}
59-
time.Sleep(10 * time.Second)
60-
m1.Unlock()
54+
go func() {
55+
err := m1.TryLock(-1, 20000)
56+
if errors.Is(err, godisson.ErrLockNotObtained) {
57+
log.Println("can't obtained lock")
58+
} else if err != nil {
59+
log.Fatalln(err)
60+
}
61+
time.Sleep(10 * time.Second)
62+
m1.Unlock()
63+
}()
6164

6265
// waitTime > 0, after 10 milliseconds will obtain the lock
63-
err = m2.TryLock(12000, 20000)
64-
if errors.Is(err, godisson.ErrLockNotObtained) {
65-
log.Println("m2 must not obtained lock")
66-
} else if err != nil {
67-
log.Fatalln(err)
68-
}
69-
time.Sleep(10 * time.Second)
70-
defer m2.Unlock()
66+
go func() {
67+
time.Sleep(1 * time.Second)
68+
69+
err := m2.TryLock(15000, 20000)
70+
if errors.Is(err, godisson.ErrLockNotObtained) {
71+
log.Println("m2 must not obtained lock")
72+
} else if err != nil {
73+
log.Fatalln(err)
74+
}
75+
time.Sleep(10 * time.Second)
76+
77+
m2.Unlock()
78+
}()
79+
time.Sleep(20 * time.Second)
80+
7181
}

0 commit comments

Comments
 (0)