XRootD
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 Function 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: