XRootD
Loading...
Searching...
No Matches
XrdThrottleTimer Class Reference

#include <XrdThrottleManager.hh>

+ Collaboration diagram for XrdThrottleTimer:

Public Member Functions

 ~XrdThrottleTimer ()
 
void StopTimer ()
 

Protected Member Functions

 XrdThrottleTimer (XrdThrottleManager &manager)
 

Friends

class XrdThrottleManager
 

Detailed Description

Definition at line 160 of file XrdThrottleManager.hh.

Constructor & Destructor Documentation

◆ ~XrdThrottleTimer()

XrdThrottleTimer::~XrdThrottleTimer ( )
inline

Definition at line 193 of file XrdThrottleManager.hh.

194{
195 if (!((m_timer.tv_sec == 0) && (m_timer.tv_nsec == -1)))
196 {
197 StopTimer();
198 }
199}

References StopTimer().

+ Here is the call graph for this function:

◆ XrdThrottleTimer()

XrdThrottleTimer::XrdThrottleTimer ( XrdThrottleManager & manager)
inlineprotected

Definition at line 203 of file XrdThrottleManager.hh.

203 :
204 m_manager(manager)
205{
206#if defined(__linux__) || defined(__APPLE__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
207 int retval = clock_gettime(clock_id, &m_timer);
208#else
209 int retval = -1;
210#endif
211 if (unlikely(retval == -1))
212 {
213 m_timer.tv_sec = 0;
214 m_timer.tv_nsec = 0;
215 }
216}
#define unlikely(x)

References unlikely.

Member Function Documentation

◆ StopTimer()

void XrdThrottleTimer::StopTimer ( )
inline

Definition at line 167 of file XrdThrottleManager.hh.

168{
169 struct timespec end_timer = {0, 0};
170#if defined(__linux__) || defined(__APPLE__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
171 int retval = clock_gettime(clock_id, &end_timer);
172#else
173 int retval = -1;
174#endif
175 if (likely(retval == 0))
176 {
177 end_timer.tv_sec -= m_timer.tv_sec;
178 end_timer.tv_nsec -= m_timer.tv_nsec;
179 if (end_timer.tv_nsec < 0)
180 {
181 end_timer.tv_sec--;
182 end_timer.tv_nsec += 1000000000;
183 }
184 }
185 if (m_timer.tv_nsec != -1)
186 {
187 m_manager.StopIOTimer(end_timer);
188 }
189 m_timer.tv_sec = 0;
190 m_timer.tv_nsec = -1;
191}
#define likely(x)
void StopIOTimer(struct timespec)

References likely, and XrdThrottleManager::StopIOTimer().

Referenced by ~XrdThrottleTimer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ XrdThrottleManager

friend class XrdThrottleManager
friend

Definition at line 163 of file XrdThrottleManager.hh.


The documentation for this class was generated from the following files: