mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 08:49:58 +00:00
lib: timer: move the timer string api to lib
This api was earlier present in the daemon code but as multiple daemons need it moving it to lib will avoid unnecessary copy-paste. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
19bfb27486
commit
0447957e62
30
lib/thread.c
30
lib/thread.c
@ -634,6 +634,36 @@ struct timeval thread_timer_remain(struct thread *thread)
|
||||
return remain;
|
||||
}
|
||||
|
||||
static int time_hhmmss(char *buf, int buf_size, long sec)
|
||||
{
|
||||
long hh;
|
||||
long mm;
|
||||
int wr;
|
||||
|
||||
zassert(buf_size >= 8);
|
||||
|
||||
hh = sec / 3600;
|
||||
sec %= 3600;
|
||||
mm = sec / 60;
|
||||
sec %= 60;
|
||||
|
||||
wr = snprintf(buf, buf_size, "%02ld:%02ld:%02ld", hh, mm, sec);
|
||||
|
||||
return wr != 8;
|
||||
}
|
||||
|
||||
char *thread_timer_to_hhmmss(char *buf, int buf_size,
|
||||
struct thread *t_timer)
|
||||
{
|
||||
if (t_timer) {
|
||||
time_hhmmss(buf, buf_size,
|
||||
thread_timer_remain_second(t_timer));
|
||||
} else {
|
||||
snprintf(buf, buf_size, "--:--:--");
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* Get new thread. */
|
||||
static struct thread *thread_get(struct thread_master *m, uint8_t type,
|
||||
int (*func)(struct thread *), void *arg,
|
||||
|
@ -140,6 +140,8 @@ struct cpu_thread_history {
|
||||
/* Thread yield time. */
|
||||
#define THREAD_YIELD_TIME_SLOT 10 * 1000L /* 10ms */
|
||||
|
||||
#define THREAD_TIMER_STRLEN 12
|
||||
|
||||
/* Macros. */
|
||||
#define THREAD_ARG(X) ((X)->arg)
|
||||
#define THREAD_FD(X) ((X)->u.fd)
|
||||
@ -228,6 +230,8 @@ extern unsigned long thread_consumed_time(RUSAGE_T *after, RUSAGE_T *before,
|
||||
|
||||
/* only for use in logging functions! */
|
||||
extern pthread_key_t thread_current;
|
||||
extern char *thread_timer_to_hhmmss(char *buf, int buf_size,
|
||||
struct thread *t_timer);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user