summaryrefslogtreecommitdiff
path: root/cmd/_____/server.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-06 16:01:06 +0300
committerWolfy-J <[email protected]>2018-06-06 16:01:06 +0300
commitc0abdf657a0a5de02b63683a60bf13b88895ef79 (patch)
treeb497e98a7c2cf73f7a8377de7566a3f7b4b72a5e /cmd/_____/server.go
parente863c6cdcf7c318fb251e096bf92812ed98ea03c (diff)
better server re-configuration
Diffstat (limited to 'cmd/_____/server.go')
-rw-r--r--cmd/_____/server.go64
1 files changed, 0 insertions, 64 deletions
diff --git a/cmd/_____/server.go b/cmd/_____/server.go
deleted file mode 100644
index 5542e7c9..00000000
--- a/cmd/_____/server.go
+++ /dev/null
@@ -1,64 +0,0 @@
-package roadrunner
-
-import (
- "os/exec"
- "sync"
-)
-
-const (
- // EventNewPool triggered when server creates new pool.
- EventNewPool = 60
-
- // EventDestroyPool triggered when server destroys existed pool.
- EventDestroyPool = 61
-)
-
-// Service manages pool creation and swapping.
-type Server struct {
- // configures server, pool, cmd creation and factory.
- scfg *ServerConfig
-
- // worker command creator
- cmd func() *exec.Cmd
-
- // observes pool events (can be attached to multiple pools at the same time)
- observer func(event int, ctx interface{})
-
- // creates and connects to workers
- factory Factory
-
- // protects pool while the switch
- mu sync.Mutex
-}
-
-// todo: do assignment
-
-// Reconfigure configures underlying pool and destroys it's previous version if any.
-func (r *Server) Configure(cfg Config) error {
- r.mu.Lock()
- previous := r.pool
- r.mu.Unlock()
-
- pool, err := NewPool(r.cmd, r.factory, cfg)
- if err != nil {
- return err
- }
-
- r.throw(EventNewPool, pool)
-
- r.mu.Lock()
-
- r.cfg, r.pool = cfg, pool
- r.pool.Observe(r.poolObserver)
-
- r.mu.Unlock()
-
- if previous != nil {
- go func(p Pool) {
- r.throw(EventDestroyPool, p)
- p.Destroy()
- }(previous)
- }
-
- return nil
-}