Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
d2bc57cd
Commit
d2bc57cd
authored
Mar 02, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PoC reactor pattern
parent
d65b4cd0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
8 deletions
+44
-8
common_test.go
ethutil/common_test.go
+35
-8
reactor.go
ethutil/reactor.go
+9
-0
No files found.
ethutil/common_test.go
View file @
d2bc57cd
package
ethutil
import
(
"fmt"
"math/big"
"testing"
)
func
TestCommon
(
t
*
testing
.
T
)
{
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
19
)))
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
16
)))
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
13
)))
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
10
)))
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
7
)))
fmt
.
Println
(
CurrencyToString
(
BigPow
(
10
,
4
)))
fmt
.
Println
(
CurrencyToString
(
big
.
NewInt
(
10
)))
ether
:=
CurrencyToString
(
BigPow
(
10
,
19
))
finney
:=
CurrencyToString
(
BigPow
(
10
,
16
))
szabo
:=
CurrencyToString
(
BigPow
(
10
,
13
))
vito
:=
CurrencyToString
(
BigPow
(
10
,
10
))
turing
:=
CurrencyToString
(
BigPow
(
10
,
7
))
eins
:=
CurrencyToString
(
BigPow
(
10
,
4
))
wei
:=
CurrencyToString
(
big
.
NewInt
(
10
))
if
ether
!=
"10 Ether"
{
t
.
Error
(
"Got"
,
ether
)
}
if
finney
!=
"10 Finney"
{
t
.
Error
(
"Got"
,
finney
)
}
if
szabo
!=
"10 Szabo"
{
t
.
Error
(
"Got"
,
szabo
)
}
if
vito
!=
"10 Vito"
{
t
.
Error
(
"Got"
,
vito
)
}
if
turing
!=
"10 Turing"
{
t
.
Error
(
"Got"
,
turing
)
}
if
eins
!=
"10 Eins"
{
t
.
Error
(
"Got"
,
eins
)
}
if
wei
!=
"10 Wei"
{
t
.
Error
(
"Got"
,
wei
)
}
}
ethutil/reactor.go
View file @
d2bc57cd
...
...
@@ -13,6 +13,9 @@ type ReactorEvent struct {
// Post the specified reactor resource on the channels
// currently subscribed
func
(
e
*
ReactorEvent
)
Post
(
react
React
)
{
e
.
mut
.
Lock
()
defer
e
.
mut
.
Unlock
()
for
_
,
ch
:=
range
e
.
chans
{
go
func
(
ch
chan
React
)
{
ch
<-
react
...
...
@@ -22,11 +25,17 @@ func (e *ReactorEvent) Post(react React) {
// Add a subscriber to this event
func
(
e
*
ReactorEvent
)
Add
(
ch
chan
React
)
{
e
.
mut
.
Lock
()
defer
e
.
mut
.
Unlock
()
e
.
chans
=
append
(
e
.
chans
,
ch
)
}
// Remove a subscriber
func
(
e
*
ReactorEvent
)
Remove
(
ch
chan
React
)
{
e
.
mut
.
Lock
()
defer
e
.
mut
.
Unlock
()
for
i
,
c
:=
range
e
.
chans
{
if
c
==
ch
{
e
.
chans
=
append
(
e
.
chans
[
:
i
],
e
.
chans
[
i
+
1
:
]
...
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment