good morning!!!!

Skip to content
Snippets Groups Projects
Commit d2bc57cd authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

PoC reactor pattern

parent d65b4cd0
Branches
Tags
No related merge requests found
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)
}
}
......@@ -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:]...)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment