diff options
author | Anonymized <anonymous@example.com> | 2018-01-19 23:46:08 +0100 |
---|---|---|
committer | Anonymized <anonymous@example.com> | 2018-01-19 23:46:08 +0100 |
commit | 0482f5a13f5d5e7305c0191385f9715f0acfa359 (patch) | |
tree | 8fa318a15965a220344afaec94a97c8023dbcdd3 | |
parent | facdb0f95037a3bc09fa62d0dae462d6dd6b7ec8 (diff) | |
download | gnunet-guile2-0482f5a13f5d5e7305c0191385f9715f0acfa359.tar.gz gnunet-guile2-0482f5a13f5d5e7305c0191385f9715f0acfa359.zip |
search: shutdown the scheduler when Ctrl+C
-rwxr-xr-x | gnunet-guile | 7 | ||||
-rw-r--r-- | gnunet.scm | 7 |
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)) |
@@ -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)) |