mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-04 17:18:45 +00:00
14d2a6d8ff
Let's hope this doesn't causes build failures for e.g. musl: I just know it's good on macOS and our Linux CI. It's been a long time. One fix this brings, is I discovered we #include assert.h or cassert in a lot of places. If those ever happen to be in a file that doesn't include common.h, or we are before common.h gets included, we're unawaringly working with the system 'assert' macro again, which may get disabled for debug builds or at least has different behavior on crash. We undef 'assert' and redefine it in common.h. Those were all eliminated, except in one catch-22 spot for maybe.h: it can't include common.h. A fix might be to make a fish_assert.h that *usually* common.h exports.
27 lines
586 B
C++
27 lines
586 B
C++
// Prototypes for executing builtin_time function.
|
|
#ifndef FISH_TIMER_H
|
|
#define FISH_TIMER_H
|
|
|
|
#include <sys/resource.h>
|
|
|
|
#include <chrono>
|
|
|
|
#include "common.h"
|
|
|
|
cleanup_t push_timer(bool enabled);
|
|
|
|
struct timer_snapshot_t {
|
|
public:
|
|
struct rusage cpu_fish;
|
|
struct rusage cpu_children;
|
|
std::chrono::time_point<std::chrono::steady_clock> wall;
|
|
|
|
static timer_snapshot_t take();
|
|
static wcstring print_delta(const timer_snapshot_t &t1, const timer_snapshot_t &t2,
|
|
bool verbose = false);
|
|
|
|
private:
|
|
timer_snapshot_t() {}
|
|
};
|
|
|
|
#endif
|