Skip to content

Commit 85b5288

Browse files
committed
working on tests
1 parent b8bc792 commit 85b5288

File tree

5 files changed

+22
-29
lines changed

5 files changed

+22
-29
lines changed

errors.go

-8
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,3 @@ type WorkerError struct {
2222
func (e WorkerError) Error() string {
2323
return e.Caused.Error()
2424
}
25-
26-
// PoolError is pool wide error
27-
type PoolError string
28-
29-
// Error converts error context to string
30-
func (e PoolError) Error() string {
31-
return string(e)
32-
}

pool.go

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package roadrunner
22

33
const (
4-
// EventCreated thrown when new worker is spawned.
5-
EventCreated = iota
4+
// EventWorkerCreate thrown when new worker is spawned.
5+
EventWorkerCreate = iota
66

7-
// EventDestruct thrown before worker destruction.
8-
EventDestruct
7+
// EventWorkerDestruct thrown before worker destruction.
8+
EventWorkerDestruct
99

10-
// EventError thrown any worker related even happen (error passed as context)
11-
EventError
10+
// EventWorkerError thrown any worker related even happen (passed with WorkerError)
11+
EventWorkerError
12+
13+
// EventPoolError caused on pool wide errors
14+
EventPoolError
1215
)
1316

1417
// Pool managed set of inner worker processes.

router.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,13 @@ func (r *Router) throw(event int, ctx interface{}) {
135135
}
136136
}
137137

138-
// Observe pools
138+
// Observe pool events
139139
func (r *Router) poolObserver(event int, ctx interface{}) {
140-
if event == EventError {
141-
if _, ok := ctx.(PoolError); ok {
142-
// pool failure, rebuilding
143-
r.Reset()
144-
}
145-
}
146-
147140
// bypassing to user specified observer
148141
r.throw(event, ctx)
142+
143+
if event == EventPoolError {
144+
// pool failure, rebuilding
145+
r.Reset()
146+
}
149147
}

static_pool.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,11 @@ func (p *StaticPool) replaceWorker(w *Worker, caused interface{}) {
170170
go p.destroyWorker(w)
171171

172172
if nw, err := p.createWorker(); err != nil {
173-
p.throw(EventError, WorkerError{Worker: w, Caused: err})
173+
p.throw(EventWorkerError, WorkerError{Worker: w, Caused: err})
174174

175175
if len(p.Workers()) == 0 {
176176
// possible situation when major error causes all PHP scripts to die (for example dead DB)
177-
p.throw(EventError, PoolError("all workers are dead"))
177+
p.throw(EventPoolError, fmt.Errorf("all workers are dead"))
178178
}
179179
} else {
180180
p.free <- nw
@@ -183,7 +183,7 @@ func (p *StaticPool) replaceWorker(w *Worker, caused interface{}) {
183183

184184
// destroyWorker destroys workers and removes it from the pool.
185185
func (p *StaticPool) destroyWorker(w *Worker) {
186-
p.throw(EventDestruct, w)
186+
p.throw(EventWorkerDestruct, w)
187187

188188
// detaching
189189
p.muw.Lock()
@@ -203,7 +203,7 @@ func (p *StaticPool) destroyWorker(w *Worker) {
203203
case <-time.NewTimer(p.cfg.DestroyTimeout).C:
204204
// failed to stop process
205205
if err := w.Kill(); err != nil {
206-
p.throw(EventError, WorkerError{Worker: w, Caused: err})
206+
p.throw(EventWorkerError, WorkerError{Worker: w, Caused: err})
207207
}
208208
}
209209
}
@@ -216,11 +216,11 @@ func (p *StaticPool) createWorker() (*Worker, error) {
216216
return nil, err
217217
}
218218

219-
p.throw(EventCreated, w)
219+
p.throw(EventWorkerCreate, w)
220220

221221
go func(w *Worker) {
222222
if err := w.Wait(); err != nil {
223-
p.throw(EventError, WorkerError{Worker: w, Caused: err})
223+
p.throw(EventWorkerError, WorkerError{Worker: w, Caused: err})
224224
}
225225
}(w)
226226

static_pool_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func Test_StaticPool_Broken_Replace(t *testing.T) {
150150
assert.NotNil(t, p)
151151
assert.NoError(t, err)
152152

153-
p.Observe(func(e int, w *Worker, ctx interface{}) {
153+
p.Observe(func(e int, ctx interface{}) {
154154
if err, ok := ctx.(error); ok {
155155
assert.Contains(t, err.Error(), "undefined_function()")
156156
}

0 commit comments

Comments
 (0)