#include "filed.h"
#ifdef WIN32_VSS
#include "vss.h"
+static pthread_mutex_t vss_mutex = PTHREAD_MUTEX_INITIALIZER;
#endif
extern char my_name[];
bnet_fsend(dir, _("2901 Job %s not found.\n"), Job);
} else {
if (cjcr->store_bsock) {
- P(cjcr->mutex);
cjcr->store_bsock->timed_out = 1;
cjcr->store_bsock->terminated = 1;
-/*
- * #if !defined(HAVE_CYGWIN) && !defined(HAVE_WIN32)
- */
-#if !defined(HAVE_CYGWIN)
pthread_kill(cjcr->my_thread_id, TIMEOUT_SIGNAL);
-#endif
- V(cjcr->mutex);
}
set_jcr_job_status(cjcr, JS_Canceled);
free_jcr(cjcr);
#ifdef WIN32_VSS
/* START VSS ON WIN 32 */
if (g_pVSSClient && enable_vss) {
+ /* Run only one at a time */
+ P(vss_mutex);
if (g_pVSSClient->InitializeForBackup()) {
/* tell vss which drives to snapshot */
char szWinDriveLetters[27];
#ifdef WIN32_VSS
/* STOP VSS ON WIN 32 */
/* tell vss to close the backup session */
- if (g_pVSSClient && enable_vss == 1)
+ if (g_pVSSClient && enable_vss) {
g_pVSSClient->CloseBackup();
+ V(vss_mutex);
+ }
#endif
bnet_fsend(dir, EndJob, jcr->JobStatus, jcr->JobFiles,