SOURCES: poldek-sigint_emit.patch (NEW) - add sigint_emit(); can b...

megabajt megabajt at pld-linux.org
Wed Apr 9 14:42:31 CEST 2008


Author: megabajt                     Date: Wed Apr  9 12:42:31 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- add sigint_emit(); can be used to interrupt actions in applications using
  libpoldek

---- Files affected:
SOURCES:
   poldek-sigint_emit.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/poldek-sigint_emit.patch
diff -u /dev/null SOURCES/poldek-sigint_emit.patch:1.1
--- /dev/null	Wed Apr  9 14:42:31 2008
+++ SOURCES/poldek-sigint_emit.patch	Wed Apr  9 14:42:26 2008
@@ -0,0 +1,53 @@
+diff -urN poldek-0.30-cvs20080225.00/libpoldek.sym poldek-0.30-cvs20080225.00.new/libpoldek.sym
+--- poldek-0.30-cvs20080225.00/libpoldek.sym	2008-04-08 19:25:12.000000000 +0200
++++ poldek-0.30-cvs20080225.00.new/libpoldek.sym	2008-04-08 19:26:26.000000000 +0200
+@@ -261,6 +261,7 @@
+ sigint_destroy
+ sigint_init
+ sigint_enable
++sigint_emit
+ sigint_pop
+ sigint_push
+ sigint_reached
+diff -urN poldek-0.30-cvs20080225.00/sigint/sigint.c poldek-0.30-cvs20080225.00.new/sigint/sigint.c
+--- poldek-0.30-cvs20080225.00/sigint/sigint.c	2008-02-02 22:49:05.000000000 +0100
++++ poldek-0.30-cvs20080225.00.new/sigint/sigint.c	2008-04-08 19:12:37.000000000 +0200
+@@ -48,6 +48,21 @@
+         orig_sighandler(sig);
+ }
+ 
++void sigint_emit (void)
++{
++    int i;
++
++    if (enabled == 0)
++	return;
++
++    interrupted = 1;
++
++    for (i = 0; i < n_array_size (cb_stack); i++) {
++	void (*cb)(void) = n_array_nth (cb_stack, i);
++
++	cb ();
++    }
++}
+ 
+ void sigint_enable(int v) 
+ {
+diff -urN poldek-0.30-cvs20080225.00/sigint/sigint.h poldek-0.30-cvs20080225.00.new/sigint/sigint.h
+--- poldek-0.30-cvs20080225.00/sigint/sigint.h	2008-02-02 22:38:26.000000000 +0100
++++ poldek-0.30-cvs20080225.00.new/sigint/sigint.h	2008-04-08 19:22:41.000000000 +0200
+@@ -6,7 +6,12 @@
+ void sigint_destroy(void);
+ void sigint_reset(void);
+ 
+-void sigint_reset(void);
++/* 
++ * emit sigint. Can be used in some external applications 
++ * using libpoldek to interrupt given action (eg. searching,
++ * processing dependencies and others)
++ */
++void sigint_emit(void);
+ 
+ void sigint_push(void (*cb)(void));
+ void *sigint_pop(void);
================================================================


More information about the pld-cvs-commit mailing list