rack_middleware.rb 530 B

123456789101112131415161718192021222324252627282930
  1. # frozen_string_literal: true
  2. class Mastodon::RackMiddleware
  3. def initialize(app)
  4. @app = app
  5. end
  6. def call(env)
  7. @app.call(env)
  8. ensure
  9. clean_up_sockets!
  10. end
  11. private
  12. def clean_up_sockets!
  13. clean_up_redis_socket!
  14. clean_up_statsd_socket!
  15. end
  16. def clean_up_redis_socket!
  17. RedisConfiguration.pool.checkin if Thread.current[:redis]
  18. Thread.current[:redis] = nil
  19. end
  20. def clean_up_statsd_socket!
  21. Thread.current[:statsd_socket]&.close
  22. Thread.current[:statsd_socket] = nil
  23. end
  24. end