int get_runtime_left (const hashcat_ctx_t *hashcat_ctx) { const status_ctx_t *status_ctx = hashcat_ctx->status_ctx; const user_options_t *user_options = hashcat_ctx->user_options; double msec_paused = status_ctx->msec_paused; if (status_ctx->devices_status == STATUS_PAUSED) { double msec_paused_tmp = hc_timer_get (status_ctx->timer_paused); msec_paused += msec_paused_tmp; } hc_time_t runtime_cur; hc_time (&runtime_cur); const int runtime_left = (int) (status_ctx->runtime_start + user_options->runtime + (msec_paused / 1000) - runtime_cur); return runtime_left; }
int ResumeThreads (hashcat_ctx_t *hashcat_ctx) { status_ctx_t *status_ctx = hashcat_ctx->status_ctx; if (status_ctx->devices_status != STATUS_PAUSED) return -1; const double msec_paused = hc_timer_get (status_ctx->timer_paused); status_ctx->msec_paused += msec_paused; status_ctx->devices_status = STATUS_RUNNING; return 0; }