[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH RFC 04/59] Controller: Move process worker into its own file



From: George Dunlap <george.dunlap@xxxxxxxxxx>

Also fix Makefile rule to use correct automatic variable.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx>
---
 Makefile         |  4 ++--
 main.go          | 59 --------------------------------------------------
 processworker.go | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 61 deletions(-)
 create mode 100644 processworker.go

diff --git a/Makefile b/Makefile
index 736d959..00f732a 100644
--- a/Makefile
+++ b/Makefile
@@ -4,8 +4,8 @@ BINALL = $(BIN)
 .PHONY: all
 all: $(BIN)
 
-controller: main.go
-       go build -o $@ $<
+controller: main.go processworker.go
+       go build -o $@ $^
 
 .PHONY: clean
 clean:
diff --git a/main.go b/main.go
index 034e2f2..a4986cf 100644
--- a/main.go
+++ b/main.go
@@ -3,11 +3,7 @@ package main
 import (
        "fmt"
        "os"
-       "os/exec"
        "os/signal"
-       "encoding/json"
-       "bufio"
-       "io"
        
 )
 
@@ -25,61 +21,6 @@ type Worker interface {
        Process(chan WorkerReport, chan bool)
 }
 
-type ProcessWorker struct {
-       id int
-       c *exec.Cmd
-       stdout io.ReadCloser
-       jsonStarted bool
-}
-
-func (w *ProcessWorker) SetId(i int) {
-       w.id = i
-}
-
-func (w *ProcessWorker) Init() (err error) {
-       w.c = exec.Command("../worker/worker-proc", "burnwait", "20", 
"20000000")
-
-       w.stdout, err = w.c.StdoutPipe()
-       if err != nil {
-               fmt.Print("Conneting to stdout: ", err)
-               return
-       }
-
-       return
-}
-
-func (w *ProcessWorker) Shutdown() {
-       w.c.Process.Kill()
-}
-
-func (w *ProcessWorker) Process(report chan WorkerReport, done chan bool) {
-       w.c.Start()
-
-       scanner := bufio.NewScanner(w.stdout)
-
-       for scanner.Scan() {
-               s := scanner.Text()
-               
-               //fmt.Println("Got these bytes: ", s);
-
-               if w.jsonStarted {
-                       var r WorkerReport
-                       json.Unmarshal([]byte(s), &r)
-                       r.Id = w.id
-                       report <- r
-               } else {
-                       if s == "START JSON" {
-                               //fmt.Println("Got token to start parsing json")
-                               w.jsonStarted = true
-                       }
-               }
-       }
-
-       done <- true
-
-       w.c.Wait()
-}
-
 const (
        USEC = 1000
        MSEC = USEC * 1000
diff --git a/processworker.go b/processworker.go
new file mode 100644
index 0000000..c1d1fd5
--- /dev/null
+++ b/processworker.go
@@ -0,0 +1,66 @@
+package main
+
+import (
+       "fmt"
+       "os/exec"
+       "encoding/json"
+       "bufio"
+       "io"
+       
+)
+
+type ProcessWorker struct {
+       id int
+       c *exec.Cmd
+       stdout io.ReadCloser
+       jsonStarted bool
+}
+
+func (w *ProcessWorker) SetId(i int) {
+       w.id = i
+}
+
+func (w *ProcessWorker) Init() (err error) {
+       w.c = exec.Command("../worker/worker-proc", "burnwait", "20", 
"20000000")
+
+       w.stdout, err = w.c.StdoutPipe()
+       if err != nil {
+               fmt.Print("Conneting to stdout: ", err)
+               return
+       }
+
+       return
+}
+
+func (w *ProcessWorker) Shutdown() {
+       w.c.Process.Kill()
+}
+
+func (w *ProcessWorker) Process(report chan WorkerReport, done chan bool) {
+       w.c.Start()
+
+       scanner := bufio.NewScanner(w.stdout)
+
+       for scanner.Scan() {
+               s := scanner.Text()
+               
+               //fmt.Println("Got these bytes: ", s);
+
+               if w.jsonStarted {
+                       var r WorkerReport
+                       json.Unmarshal([]byte(s), &r)
+                       r.Id = w.id
+                       report <- r
+               } else {
+                       if s == "START JSON" {
+                               //fmt.Println("Got token to start parsing json")
+                               w.jsonStarted = true
+                       }
+               }
+       }
+
+       done <- true
+
+       w.c.Wait()
+}
+
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.