Guarantee no race between ruby server's shutdown_and_notify and destroy

pull/14134/head
Alexander Polcyn 7 years ago
parent 7b87bab832
commit d60ed8f1f8
  1. 6
      src/ruby/lib/grpc/generic/rpc_server.rb

@ -244,9 +244,9 @@ module GRPC
fail 'Cannot stop before starting' if @running_state == :not_started
return if @running_state != :running
transition_running_state(:stopping)
end
deadline = from_relative_time(@poll_period)
@server.shutdown_and_notify(deadline)
end
@pool.stop
end
@ -416,10 +416,12 @@ module GRPC
end
end
# @running_state should be :stopping here
@run_mutex.synchronize { transition_running_state(:stopped) }
@run_mutex.synchronize do
transition_running_state(:stopped)
GRPC.logger.info("stopped: #{self}")
@server.close
end
end
def new_active_server_call(an_rpc)
return nil if an_rpc.nil? || an_rpc.call.nil?

Loading…
Cancel
Save