Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 500c086a authored by Christopher Ferris's avatar Christopher Ferris Committed by Android Git Automerger
Browse files

am 5ef471c5: Merge "Use time() instead of clock() for timeouts." into lmp-dev

* commit '5ef471c5':
  Use time() instead of clock() for timeouts.
parents 75ec33e0 5ef471c5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -296,7 +296,7 @@ int dump_file_from_fd(const char *title, const char *path, int fd) {
/* forks a command and waits for it to finish */
int run_command(const char *title, int timeout_seconds, const char *command, ...) {
    fflush(stdout);
    clock_t start = clock();
    time_t start = time(NULL);
    pid_t pid = fork();

    /* handle error case */
@@ -340,19 +340,19 @@ int run_command(const char *title, int timeout_seconds, const char *command, ...
    for (;;) {
        int status;
        pid_t p = waitpid(pid, &status, WNOHANG);
        float elapsed = (float) (clock() - start) / CLOCKS_PER_SEC;
        time_t elapsed = time(NULL) - start;
        if (p == pid) {
            if (WIFSIGNALED(status)) {
                printf("*** %s: Killed by signal %d\n", command, WTERMSIG(status));
            } else if (WIFEXITED(status) && WEXITSTATUS(status) > 0) {
                printf("*** %s: Exit code %d\n", command, WEXITSTATUS(status));
            }
            if (title) printf("[%s: %.1fs elapsed]\n\n", command, elapsed);
            if (title) printf("[%s: %ds elapsed]\n\n", command, (int) elapsed);
            return status;
        }

        if (timeout_seconds && elapsed > timeout_seconds) {
            printf("*** %s: Timed out after %.1fs (killing pid %d)\n", command, elapsed, pid);
            printf("*** %s: Timed out after %ds (killing pid %d)\n", command, (int) elapsed, pid);
            kill(pid, SIGTERM);
            return -1;
        }