aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dicache.c5
-rw-r--r--src/image.cc10
-rw-r--r--src/image.hh1
3 files changed, 15 insertions, 1 deletions
diff --git a/src/dicache.c b/src/dicache.c
index 673d5907..ec63df1f 100644
--- a/src/dicache.c
+++ b/src/dicache.c
@@ -517,9 +517,12 @@ void a_Dicache_callback(int Op, CacheClient_t *Client)
Image->ScanNumber = DicEntry->ScanNumber;
}
}
- } else if (Op == CA_Close || Op == CA_Abort) {
+ } else if (Op == CA_Close) {
a_Image_close(Image);
a_Bw_close_client(Web->bw, Client->Key);
+ } else if (Op == CA_Abort) {
+ a_Image_abort(Image);
+ a_Bw_close_client(Web->bw, Client->Key);
}
}
diff --git a/src/image.cc b/src/image.cc
index 570c012a..04d89a82 100644
--- a/src/image.cc
+++ b/src/image.cc
@@ -118,5 +118,15 @@ void a_Image_write(DilloImage *Image, uint_t y)
void a_Image_close(DilloImage *Image)
{
_MSG("a_Image_close\n");
+ I2IR(Image)->finish();
+}
+
+/*
+ * Implement the abort method
+ */
+void a_Image_abort(DilloImage *Image)
+{
+ _MSG("a_Image_abort\n");
+ I2IR(Image)->fatal();
}
diff --git a/src/image.hh b/src/image.hh
index 80f23461..fd105a7e 100644
--- a/src/image.hh
+++ b/src/image.hh
@@ -71,6 +71,7 @@ void a_Image_set_parms(DilloImage *Image, void *v_imgbuf, DilloUrl *url,
DilloImgType type);
void a_Image_write(DilloImage *Image, uint_t y);
void a_Image_close(DilloImage *Image);
+void a_Image_abort(DilloImage *Image);
#ifdef __cplusplus