| 110 | } |
| 111 | |
| 112 | unsigned UnusedConnKeepaliveTimeout() const { |
| 113 | if (size_t e = ExceedSoftLimit()) { |
| 114 | size_t d = DeltaLimit(); |
| 115 | size_t leftAvailableFd = NHttp::TFdLimits::ExceedLimit(d, e); |
| 116 | unsigned r = static_cast<unsigned>(MaxUnusedConnKeepaliveTimeout.load(std::memory_order_acquire) * leftAvailableFd / (d + 1)); |
| 117 | return Max(r, (unsigned)MinUnusedConnKeepaliveTimeout.load(std::memory_order_acquire)); |
| 118 | } |
| 119 | return MaxUnusedConnKeepaliveTimeout.load(std::memory_order_acquire); |
| 120 | } |
| 121 | |
| 122 | void SetFdLimits(size_t soft, size_t hard) { |
| 123 | Limits.SetSoft(soft); |
no test coverage detected