many others, a complete list can be found in the file AUTHORS.
This program is Free Software; you can redistribute it and/or
modify it under the terms of version two of the GNU General Public
- License as published by the Free Software Foundation plus additions
- that are listed in the file LICENSE.
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
bool forge_on = false; /* proceed inspite of I/O errors */
pthread_mutex_t device_release_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t wait_device_release = PTHREAD_COND_INITIALIZER;
+void *start_heap;
static uint32_t VolSessionId = 0;
char *uid = NULL;
char *gid = NULL;
+ start_heap = sbrk(0);
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
continue;
}
- jcr->dcr = dcr = new_dcr(jcr, dev);
+ jcr->dcr = dcr = new_dcr(jcr, NULL, dev);
if (dev->is_autochanger()) {
/* If autochanger set slot in dev sturcture */
get_autochanger_loaded_slot(dcr);
exit(1);
}
in_here = true;
+ stop_watchdog();
if (sig == SIGTERM) { /* normal shutdown request? */
/*
set_jcr_job_status(jcr, JS_Canceled);
fd = jcr->file_bsock;
if (fd) {
- fd->timed_out = true;
+ fd->set_timed_out();
Dmsg1(100, "term_stored killing JobId=%d\n", jcr->JobId);
pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
/* ***FIXME*** wiffle through all dcrs */
if (jcr->dcr && jcr->dcr->dev && jcr->dcr->dev->blocked()) {
pthread_cond_broadcast(&jcr->dcr->dev->wait_next_vol);
+ Dmsg1(100, "JobId=%u broadcast wait_device_release\n", (uint32_t)jcr->JobId);
pthread_cond_broadcast(&wait_device_release);
}
if (jcr->read_dcr && jcr->read_dcr->dev && jcr->read_dcr->dev->blocked()) {
foreach_res(device, R_DEVICE) {
Dmsg1(10, "Term device %s\n", device->device_name);
if (device->dev) {
- free_volume(device->dev);
+ device->dev->clear_volhdr();
device->dev->term();
device->dev = NULL;
} else {
}
term_reservations_lock();
term_msg();
- stop_watchdog();
cleanup_crypto();
free_volume_list();
close_memory_pool();