/*
- * Copyright (c) 2007, 2008, 2009, 2010 Zmanda, Inc. All Rights Reserved.
+ * Copyright (c) 2007-2012 Zmanda, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
typedef struct _NullDeviceClass NullDeviceClass;
struct _NullDeviceClass {
DeviceClass __parent__;
- gboolean in_file;
};
void null_device_register(void);
if (device_in_error(self)) return FALSE;
pself->access_mode = mode;
+ g_mutex_lock(pself->device_mutex);
pself->in_file = FALSE;
+ g_mutex_unlock(pself->device_mutex);
if (mode == ACCESS_WRITE) {
pself->volume_label = newstralloc(pself->volume_label, label);
null_device_start_file(Device * d_self,
dumpfile_t * jobInfo G_GNUC_UNUSED)
{
+ g_mutex_lock(d_self->device_mutex);
d_self->in_file = TRUE;
+ g_mutex_unlock(d_self->device_mutex);
d_self->is_eom = FALSE;
d_self->block = 0;
if (d_self->file <= 0)
null_device_finish_file(Device * pself) {
if (device_in_error(pself)) return FALSE;
+ g_mutex_lock(pself->device_mutex);
pself->in_file = FALSE;
+ g_mutex_unlock(pself->device_mutex);
return TRUE;
}