Previously, if journal_file_set_offline() is called twice with 'wait = false',
the second call triggered segfaults, as the offline_state is OFFLINE_DONE,
and journal_file_set_offline_thread_join() tries to call pthread_join()
with NULL.
/* Initiate a new offline. */
f->offline_state = OFFLINE_SYNCING;
- if (wait) /* Without using a thread if waiting. */
+ if (wait) {
+ /* Without using a thread if waiting. */
journal_file_set_offline_internal(f);
- else {
+
+ assert(f->offline_state == OFFLINE_DONE);
+ f->offline_state = OFFLINE_JOINED;
+
+ } else {
sigset_t ss, saved_ss;
int k;