X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fjob.h;h=b7ebd8dc88866b21855fb51994c2437565e96999;hb=4c3f1641f13b7687a0dc234d3ae387b7c40494ff;hp=0500e1208b18f01fb3d87bd1ea8fe65cd8abff71;hpb=6a371e23ee0e47827fb4e3aa469ed84da2599304;p=elogind.git diff --git a/src/core/job.h b/src/core/job.h index 0500e1208..b7ebd8dc8 100644 --- a/src/core/job.h +++ b/src/core/job.h @@ -99,6 +99,7 @@ enum JobResult { JOB_DEPENDENCY, /* A required dependency job did not result in JOB_DONE */ JOB_SKIPPED, /* Negative result of JOB_VERIFY_ACTIVE */ JOB_INVALID, /* JOB_RELOAD of inactive unit */ + JOB_ASSERT, /* Couldn't start a unit, because an assert didn't hold */ _JOB_RESULT_MAX, _JOB_RESULT_INVALID = -1 }; @@ -145,8 +146,15 @@ struct Job { sd_event_source *timer_event_source; usec_t begin_usec; - /* There can be more than one client, because of job merging. */ - Set *subscribed; + /* + * This tracks where to send signals, and also which clients + * are allowed to call DBus methods on the job (other than + * root). + * + * There can be more than one client, because of job merging. + */ + sd_bus_track *clients; + char **deserialized_clients; JobResult result; @@ -222,3 +230,5 @@ JobMode job_mode_from_string(const char *s) _pure_; const char* job_result_to_string(JobResult t) _const_; JobResult job_result_from_string(const char *s) _pure_; + +int job_get_timeout(Job *j, uint64_t *timeout) _pure_;