aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnonymized <anonymous@example.com>2018-01-19 23:46:08 +0100
committerAnonymized <anonymous@example.com>2018-01-19 23:46:08 +0100
commit0482f5a13f5d5e7305c0191385f9715f0acfa359 (patch)
tree8fa318a15965a220344afaec94a97c8023dbcdd3
parentfacdb0f95037a3bc09fa62d0dae462d6dd6b7ec8 (diff)
downloadgnunet-guile2-0482f5a13f5d5e7305c0191385f9715f0acfa359.tar.gz
gnunet-guile2-0482f5a13f5d5e7305c0191385f9715f0acfa359.zip
search: shutdown the scheduler when Ctrl+C
-rwxr-xr-xgnunet-guile7
-rw-r--r--gnunet.scm7
2 files changed, 13 insertions, 1 deletions
diff --git a/gnunet-guile b/gnunet-guile
index ea6701b..ac37bfe 100755
--- a/gnunet-guile
+++ b/gnunet-guile
@@ -164,6 +164,10 @@ Publish on gnunet FILE using CONFIGURATION using KEYWORDS.
164 164
165;;; search 165;;; search
166 166
167(define (search/task/shutdown search-context)
168 (lambda ()
169 (fs-search-stop search-context)))
170
167(define (search/progress info) 171(define (search/progress info)
168 (let ((status (fs-progress-info-status info))) 172 (let ((status (fs-progress-info-status info)))
169 (cond 173 (cond
@@ -177,7 +181,8 @@ Publish on gnunet FILE using CONFIGURATION using KEYWORDS.
177(define (search/task configuration uri) 181(define (search/task configuration uri)
178 (lambda () 182 (lambda ()
179 (let ((fs (fs-start configuration "gnunet-guile" search/progress))) 183 (let ((fs (fs-start configuration "gnunet-guile" search/progress)))
180 (fs-search-start fs uri 1 %fs-search-option-none)))) 184 (let ((search-context (fs-search-start fs uri 1 %fs-search-option-none)))
185 (scheduler-add-shutdown (search/task/shutdown search-context))))))
181 186
182(define (search-exec configuration keywords) 187(define (search-exec configuration keywords)
183 (let ((configuration* (configuration-create)) 188 (let ((configuration* (configuration-create))
diff --git a/gnunet.scm b/gnunet.scm
index 67e2570..3fbdf47 100644
--- a/gnunet.scm
+++ b/gnunet.scm
@@ -809,6 +809,13 @@ with + if it must be mandatory"
809 (lambda (fs uri anonymity options) 809 (lambda (fs uri anonymity options)
810 (func fs uri anonymity options ffi:%null-pointer)))) 810 (func fs uri anonymity options ffi:%null-pointer))))
811 811
812(define-public fs-search-stop
813 (let ((func (fs ffi:void "GNUNET_FS_search_stop" '*)))
814 (lambda (search-context)
815 (func search-context))))
816
817
818
812;; gnunet-identity bindings 819;; gnunet-identity bindings
813 820
814(define identity (dynamic-link* %libgnunet-identity)) 821(define identity (dynamic-link* %libgnunet-identity))