X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fjcr.h;h=45faa3ef0188cff5b9ee71eba1e0cd3bf63a5b5f;hb=f0bb1c65b1149342eba3823d78b389a2af1a5643;hp=9fc06e81d56d0175ecd6932b28f0d9733d170019;hpb=f5727a2417ede1709c78329eceee239a88f6bf84;p=bacula%2Fbacula diff --git a/bacula/src/jcr.h b/bacula/src/jcr.h index 9fc06e81d5..45faa3ef01 100644 --- a/bacula/src/jcr.h +++ b/bacula/src/jcr.h @@ -86,16 +86,19 @@ #define SD_READ 0 /* Forward referenced structures */ -struct JCR; +class JCR; struct FF_PKT; typedef void (JCR_free_HANDLER)(JCR *jcr); /* Job Control Record (JCR) */ -struct JCR { +class JCR { +public: + void inc_use_count(void) {P(mutex); use_count++; V(mutex); }; + void dec_use_count(void) {P(mutex); use_count--; V(mutex); }; + /* Global part of JCR common to all daemons */ - JCR *next; - JCR *prev; + dlink link; /* JCR chain link */ volatile int use_count; /* use count */ pthread_t my_thread_id; /* id of thread controlling jcr */ pthread_mutex_t mutex; /* jcr mutex */ @@ -306,7 +309,6 @@ extern dlist *last_jobs; /* The following routines are found in lib/jcr.c */ extern bool init_jcr_subsystem(void); extern JCR *new_jcr(int size, JCR_free_HANDLER *daemon_free_jcr); -extern void free_locked_jcr(JCR *jcr); extern JCR *get_jcr_by_id(uint32_t JobId); extern JCR *get_jcr_by_session(uint32_t SessionId, uint32_t SessionTime); extern JCR *get_jcr_by_partial_name(char *Job); @@ -314,16 +316,6 @@ extern JCR *get_jcr_by_full_name(char *Job); extern JCR *get_next_jcr(JCR *jcr); extern void set_jcr_job_status(JCR *jcr, int JobStatus); -#ifdef TRACE_JCR_CHAIN -extern void b_lock_jcr_chain(const char *filen, int line); -extern void b_unlock_jcr_chain(const char *filen, int line); -#define lock_jcr_chain() b_lock_jcr_chain(__FILE__, __LINE__); -#define unlock_jcr_chain() b_unlock_jcr_chain(__FILE__, __LINE__); -#else -extern void lock_jcr_chain(); -extern void unlock_jcr_chain(); -#endif - #ifdef DEBUG extern void b_free_jcr(const char *file, int line, JCR *jcr); #define free_jcr(jcr) b_free_jcr(__FILE__, __LINE__, (jcr))