summaryrefslogtreecommitdiff
path: root/doc/talks
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
committerOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
commit3e45412327a2654a77944249962b3652e6142299 (patch)
treebc3bf69452afa055423cbe0c5cfa8ca357df6ccf /doc/talks
parentc533680039762cacbc37db8dc7eed074c3e497be (diff)
downloadgolang-upstream/2011.01.12.tar.gz
Imported Upstream version 2011.01.12upstream/2011.01.12
Diffstat (limited to 'doc/talks')
-rw-r--r--doc/talks/gofrontend-gcc-summit-2010.pdfbin0 -> 125185 bytes
-rw-r--r--doc/talks/io2010/balance.go8
2 files changed, 6 insertions, 2 deletions
diff --git a/doc/talks/gofrontend-gcc-summit-2010.pdf b/doc/talks/gofrontend-gcc-summit-2010.pdf
new file mode 100644
index 000000000..157fd7676
--- /dev/null
+++ b/doc/talks/gofrontend-gcc-summit-2010.pdf
Binary files differ
diff --git a/doc/talks/io2010/balance.go b/doc/talks/io2010/balance.go
index 6a0713831..b01f7468c 100644
--- a/doc/talks/io2010/balance.go
+++ b/doc/talks/io2010/balance.go
@@ -6,6 +6,7 @@ package main
import (
"container/heap"
+ "flag"
"fmt"
"rand"
"time"
@@ -14,6 +15,8 @@ import (
const nRequester = 100
const nWorker = 10
+var roundRobin = flag.Bool("r", false, "use round-robin scheduling")
+
// Simulation of some work: just sleep for a while and report how long.
func op() int {
n := rand.Int63n(1e9)
@@ -125,7 +128,7 @@ func (b *Balancer) print() {
}
func (b *Balancer) dispatch(req Request) {
- if false {
+ if *roundRobin {
w := b.pool[b.i]
w.requests <- req
w.pending++
@@ -144,7 +147,7 @@ func (b *Balancer) dispatch(req Request) {
}
func (b *Balancer) completed(w *Worker) {
- if false {
+ if *roundRobin {
w.pending--
return
}
@@ -156,6 +159,7 @@ func (b *Balancer) completed(w *Worker) {
}
func main() {
+ flag.Parse()
work := make(chan Request)
for i := 0; i < nRequester; i++ {
go requester(work)