es->event_file_name = filename ? strdup(filename) : jobid2eventfile(job_id);
es->control_file_name = filename ? astrcat(filename, ".ctl") : jobid2controlfile(job_id);
es->rotate_index = filename ? fname2index(filename) : 0;
- es->jobid_next = es;
- es->jobid_prev = es;
IL_EVENT_ID_FREE(job_id);
il_log(LOG_DEBUG, " creating event store for id %s, filename %s\n", job_id_s, es->event_file_name);
struct event_store_list *p = es->le;
do {
- event_store_recover(p);
+ event_store_recover(p->es);
if(p != es->le ) {
- event_store_release(p);
+ event_store_release(p->es);
}
if(pthread_rwlock_rdlock(&store_list_lock))
abort();
p = p->jobid_next;
if(p != es->le) {
- if(pthread_rwlock_rdlock(&p->use_lock))
+ if(pthread_rwlock_rdlock(&p->es->use_lock))
abort();
}
if(pthread_rwlock_unlock(&store_list_lock))
time_t last_modified; /* time of the last file modification */
int generation; /* cleanup counter, scopes the offset */
int rotate_index; /* rotation counter */
- struct event_store_list *le /* points back to the list */
+ struct event_store_list *le; /* points back to the list */
pthread_rwlock_t commit_lock; /* lock to prevent simultaneous updates to last_committed_* */
pthread_rwlock_t offset_lock; /* lock to prevent simultaneous updates offset */
pthread_rwlock_t use_lock; /* lock to prevent struct deallocation */