File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -547,15 +547,18 @@ def join(self):
547547 invoker .service .on_shutdown ()
548548
549549 def get_invoker (self , name , msg ):
550- self ._lock .acquire ()
551- try :
552- invoker = self ._invoker_by_name .get (name )
553- if not invoker :
554- service = self ._activator .activate (self , name , msg )
555- invoker = service .invoker_class (service = service )
556- self ._invoker_by_name [name ] = invoker
557- finally :
558- self ._lock .release ()
550+ invoker = self ._invoker_by_name .get (name )
551+ if invoker is None :
552+ # Avoid acquiring lock if possible.
553+ self ._lock .acquire ()
554+ try :
555+ invoker = self ._invoker_by_name .get (name )
556+ if not invoker :
557+ service = self ._activator .activate (self , name , msg )
558+ invoker = service .invoker_class (service = service )
559+ self ._invoker_by_name [name ] = invoker
560+ finally :
561+ self ._lock .release ()
559562
560563 return invoker
561564
You can’t perform that action at this time.
0 commit comments