@@ -18,7 +18,10 @@ func newIntrospectIntf(h *defaultHandler) *exportedIntf {
18
18
return newExportedIntf (methods , true )
19
19
}
20
20
21
- func newDefaultHandler () * defaultHandler {
21
+ //NewDefaultHandler returns an instance of the default
22
+ //call handler. This is useful if you want to implement only
23
+ //one of the two handlers but not both.
24
+ func NewDefaultHandler () * defaultHandler {
22
25
h := & defaultHandler {
23
26
objects : make (map [ObjectPath ]* exportedObj ),
24
27
defaultIntf : make (map [string ]* exportedIntf ),
@@ -214,7 +217,10 @@ func (obj *exportedIntf) isFallbackInterface() bool {
214
217
return obj .includeSubtree
215
218
}
216
219
217
- func newDefaultSignalHandler () * defaultSignalHandler {
220
+ //NewDefaultSignalHandler returns an instance of the default
221
+ //signal handler. This is useful if you want to implement only
222
+ //one of the two handlers but not both.
223
+ func NewDefaultSignalHandler () * defaultSignalHandler {
218
224
return & defaultSignalHandler {}
219
225
}
220
226
@@ -230,14 +236,16 @@ type defaultSignalHandler struct {
230
236
}
231
237
232
238
func (sh * defaultSignalHandler ) DeliverSignal (intf , name string , signal * Signal ) {
233
- sh .RLock ()
234
- defer sh .RUnlock ()
235
- if sh .closed {
236
- return
237
- }
238
- for _ , ch := range sh .signals {
239
- ch <- signal
240
- }
239
+ go func () {
240
+ sh .RLock ()
241
+ defer sh .RUnlock ()
242
+ if sh .closed {
243
+ return
244
+ }
245
+ for _ , ch := range sh .signals {
246
+ ch <- signal
247
+ }
248
+ }()
241
249
}
242
250
243
251
func (sh * defaultSignalHandler ) Init () error {
0 commit comments