forked from enlightenment/efl
add timeouts to all generic loaders - same timer infra.
SVN revision: 77076
This commit is contained in:
parent
f80c3d9399
commit
764ddff2f8
|
@ -31,3 +31,8 @@
|
|||
2012-08-30 Carsten Haitzler (The Rasterman)
|
||||
|
||||
1.7.0 release
|
||||
|
||||
2012-09-26 Carsten Haitzler (The Rasterman)
|
||||
|
||||
* Add various alarm/signal based timeouts for all generic
|
||||
loaders in case they get stuck
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
Evas Generic Loaders 1.7.0
|
||||
Evas Generic Loaders 1.8.0
|
||||
|
||||
Changes since Evas Generic Loaders 1.7.0:
|
||||
-----------------------------------------
|
||||
|
||||
Improvements:
|
||||
|
||||
* All generic loader binaries have built-in timeouts in case they
|
||||
get stuck.
|
||||
|
||||
Changes since Evas Generic Loaders 1.2.0:
|
||||
-----------------------------------------
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
EXTRA_DIST = shmfile.c shmfile.h
|
||||
EXTRA_DIST = shmfile.c shmfile.h timeout.c timeout.h
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
static void
|
||||
_timeout(int val)
|
||||
{
|
||||
_exit(-1);
|
||||
if (val) return;
|
||||
}
|
||||
|
||||
void
|
||||
timeout_init(int seconds)
|
||||
{
|
||||
signal(SIGALRM, _timeout);
|
||||
alarm(seconds);
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef TIMEOUT_H
|
||||
#define TIMEOUT_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void timeout_init(int seconds);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -17,7 +17,8 @@ bindir = $(libdir)/evas/utils
|
|||
|
||||
evas_image_loader_gst_SOURCES = \
|
||||
main.c \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_gst_CFLAGS =
|
||||
evas_image_loader_gst_LDADD = @GSTREAMER_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@
|
||||
evas_image_loader_gst_LDFLAGS =
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
#include <sys/mman.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include <Eina.h>
|
||||
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#define DATA32 unsigned int
|
||||
|
||||
|
@ -23,8 +23,6 @@
|
|||
#define D(fmt, args...)
|
||||
#endif
|
||||
|
||||
#define TIMEOUT 5
|
||||
|
||||
#define CAPS "video/x-raw-rgb,bpp=(int)32,depth=(int)32,endianness=(int)4321,red_mask=(int)0x0000ff00, green_mask=(int)0x00ff0000, blue_mask=(int)0xff000000"
|
||||
|
||||
static GstElement *pipeline = NULL;
|
||||
|
@ -172,13 +170,6 @@ _gst_load_image(int size_w, int size_h)
|
|||
memcpy(data, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer));
|
||||
}
|
||||
|
||||
static void
|
||||
timeout(int val)
|
||||
{
|
||||
// error - timeout :(
|
||||
exit(-7);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -220,9 +211,7 @@ main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
// timeout: if we can't manage to get this done in TIMEOUT seconds, give up.
|
||||
signal(SIGALRM, timeout);
|
||||
alarm(TIMEOUT);
|
||||
timeout_init(10);
|
||||
|
||||
D("_gst_init_file\n");
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ bindir = $(libdir)/evas/utils
|
|||
|
||||
evas_image_loader_pdf_SOURCES = \
|
||||
main.cpp \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_pdf_CFLAGS =
|
||||
evas_image_loader_pdf_LDADD = @POPPLER_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@
|
||||
evas_image_loader_pdf_LDFLAGS =
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <Eina.h>
|
||||
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#define DATA32 unsigned int
|
||||
|
||||
|
@ -242,6 +243,8 @@ main(int argc, char **argv)
|
|||
D("dpi....: %f\n", dpi);
|
||||
D("page...: %d\n", page);
|
||||
|
||||
timeout_init(10);
|
||||
|
||||
if (!poppler_init(file, page, size_w, size_h))
|
||||
return -1;
|
||||
D("poppler_file_init done\n");
|
||||
|
|
|
@ -17,7 +17,8 @@ bindir = $(libdir)/evas/utils
|
|||
|
||||
evas_image_loader_ps_SOURCES = \
|
||||
main.c \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_ps_CFLAGS =
|
||||
evas_image_loader_ps_LDADD = @SPECTRE_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@
|
||||
evas_image_loader_ps_LDFLAGS =
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <Eina.h>
|
||||
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#define DATA32 unsigned int
|
||||
|
||||
|
@ -249,6 +250,8 @@ main(int argc, char **argv)
|
|||
D("dpi....: %f\n", dpi);
|
||||
D("page...: %d\n", page);
|
||||
|
||||
timeout_init(10);
|
||||
|
||||
if (!_spectre_init(file, page, size_w, size_h))
|
||||
return -1;
|
||||
D("_spectre_init done\n");
|
||||
|
|
|
@ -14,7 +14,10 @@ AM_CPPFLAGS = \
|
|||
bin_PROGRAMS = evas_image_loader.raw
|
||||
bindir = $(libdir)/evas/utils
|
||||
|
||||
evas_image_loader_raw_SOURCES = main.c $(top_srcdir)/src/bin/common/shmfile.c
|
||||
evas_image_loader_raw_SOURCES = \
|
||||
main.c \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_raw_CFLAGS = @LIBRAW_CFLAGS@
|
||||
evas_image_loader_raw_LDADD = @SHM_OPEN_LIBS@ @LIBRAW_LIBS@ -lm
|
||||
evas_image_loader_raw_LDFLAGS =
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <unistd.h>
|
||||
#include <libraw.h>
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
# include <netinet/in.h>
|
||||
|
@ -205,6 +206,8 @@ int main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
timeout_init(4);
|
||||
|
||||
if (!_raw_init(file)) return -1;
|
||||
if (head_only != 0)
|
||||
{
|
||||
|
|
|
@ -14,7 +14,10 @@ AM_CPPFLAGS = \
|
|||
bin_PROGRAMS = evas_image_loader.svg
|
||||
bindir = $(libdir)/evas/utils
|
||||
|
||||
evas_image_loader_svg_SOURCES = main.c $(top_srcdir)/src/bin/common/shmfile.c
|
||||
evas_image_loader_svg_SOURCES = \
|
||||
main.c \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_svg_CFLAGS = @SVG_CFLAGS@
|
||||
evas_image_loader_svg_LDADD = @SVG_LIBS@ @SHM_OPEN_LIBS@ -lm
|
||||
evas_image_loader_svg_LDFLAGS =
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#endif
|
||||
#include <stdio.h>
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#include <Eina.h>
|
||||
|
||||
|
@ -181,6 +182,8 @@ int main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
timeout_init(5);
|
||||
|
||||
if (!_svg_init(file)) return -1;
|
||||
if (!read_svg_header(scale_down, dpi, size_w, size_h)) return -1;
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@ bindir = $(libdir)/evas/utils
|
|||
|
||||
evas_image_loader_xcf_SOURCES = \
|
||||
main.c pixelfuncs.c common.h \
|
||||
$(top_srcdir)/src/bin/common/shmfile.c
|
||||
$(top_srcdir)/src/bin/common/shmfile.c \
|
||||
$(top_srcdir)/src/bin/common/timeout.c
|
||||
evas_image_loader_xcf_CFLAGS = @EINA_CFLAGS@
|
||||
evas_image_loader_xcf_LDADD = @EINA_LIBS@ -lz -lm @SHM_OPEN_LIBS@
|
||||
evas_image_loader_xcf_LDFLAGS =
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
*/
|
||||
#include "common.h"
|
||||
#include "shmfile.h"
|
||||
#include "timeout.h"
|
||||
|
||||
#define FREE(X) { free(X); X = NULL; }
|
||||
|
||||
|
@ -1693,8 +1694,12 @@ main(int argc, char **argv)
|
|||
// int size_h = atoi(argv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
timeout_init(8);
|
||||
|
||||
D("xcf_file_init\n");
|
||||
if (!xcf_file_init(file)) return -1;
|
||||
|
||||
D("size %i %i\n", image->width, image->height);
|
||||
if (!head_only)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue