#ifndef COSMOPOLITAN_LIBC_ITIMER_H_
#define COSMOPOLITAN_LIBC_ITIMER_H_
#include "libc/atomic.h"
#include "libc/calls/struct/itimerval.h"
#include "third_party/nsync/cv.h"
#include "third_party/nsync/mu.h"
COSMOPOLITAN_C_START_

struct IntervalTimer {
  atomic_uint once;
  intptr_t thread;
  nsync_mu lock;
  nsync_cv cond;
  struct itimerval it;
};

extern struct IntervalTimer __itimer;

void __itimer_wipe(void);

COSMOPOLITAN_C_END_
#endif /* COSMOPOLITAN_LIBC_ITIMER_H_ */