set_session (Rack::Session::Pool)

    # File lib/rack/session/pool.rb, line 59
          def set_session(env, session_id, new_session, options)
            @mutex.lock if env['rack.multithread']
            session = @pool[session_id]
            if options[:renew] or options[:drop]
              @pool.delete session_id
              return false if options[:drop]
              session_id = generate_sid
              @pool.store session_id, 0
            end
            old_session = new_session.instance_variable_get('@old') || {}
            session = merge_sessions session_id, old_session, new_session, session
            @pool.store session_id, session
            return session_id
          rescue
            warn "#{new_session.inspect} has been lost."
            warn $!.inspect
          ensure
            @mutex.unlock if env['rack.multithread']
          end