aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnonymized <anonymous@example.com>2018-01-20 02:38:47 +0100
committerAnonymized <anonymous@example.com>2018-01-20 02:42:06 +0100
commit2034f421b3efe88e72cd626b36b74f453fdeaa66 (patch)
tree4f094ecf5170f0aee65a759398764c9b48c65e8c
parent59ee9129c87d5009648a2f9892c32c85d5115f72 (diff)
downloadgnunet-guile2-2034f421b3efe88e72cd626b36b74f453fdeaa66.tar.gz
gnunet-guile2-2034f421b3efe88e72cd626b36b74f453fdeaa66.zip
gnunet: add scheduler-add-delayed.
And add timeout to 'gnunet-guile search'.
-rwxr-xr-xgnunet-guile4
-rw-r--r--gnunet.scm6
2 files changed, 10 insertions, 0 deletions
diff --git a/gnunet-guile b/gnunet-guile
index ac37bfe..165fc88 100755
--- a/gnunet-guile
+++ b/gnunet-guile
@@ -178,10 +178,14 @@ Publish on gnunet FILE using CONFIGURATION using KEYWORDS.
178 ((eq? status %fs-status-search-error) 178 ((eq? status %fs-status-search-error)
179 (format #t "* Error searching: ~a\n" (fs-progress-info-search-error-message info)))))) 179 (format #t "* Error searching: ~a\n" (fs-progress-info-search-error-message info))))))
180 180
181(define (search/timeout)
182 (scheduler-shutdown))
183
181(define (search/task configuration uri) 184(define (search/task configuration uri)
182 (lambda () 185 (lambda ()
183 (let ((fs (fs-start configuration "gnunet-guile" search/progress))) 186 (let ((fs (fs-start configuration "gnunet-guile" search/progress)))
184 (let ((search-context (fs-search-start fs uri 1 %fs-search-option-none))) 187 (let ((search-context (fs-search-start fs uri 1 %fs-search-option-none)))
188 (scheduler-add-delayed (* 30 (expt 10 6)) search/timeout)
185 (scheduler-add-shutdown (search/task/shutdown search-context)))))) 189 (scheduler-add-shutdown (search/task/shutdown search-context))))))
186 190
187(define (search-exec configuration keywords) 191(define (search-exec configuration keywords)
diff --git a/gnunet.scm b/gnunet.scm
index 3fbdf47..cba3d5a 100644
--- a/gnunet.scm
+++ b/gnunet.scm
@@ -242,6 +242,12 @@ The task will be run with the DEFAULT priority."
242 (let ((task (ffi:procedure->pointer ffi:void thunk '()))) 242 (let ((task (ffi:procedure->pointer ffi:void thunk '())))
243 (func task ffi:%null-pointer))))) 243 (func task ffi:%null-pointer)))))
244 244
245(define-public scheduler-add-delayed
246 (let ((func (util '* "GNUNET_SCHEDULER_add_delayed" ffi:uint64 '* '*)))
247 (lambda (timeout callback)
248 (func timeout
249 (ffi:procedure->pointer ffi:void (lambda _ (callback)) '(*))
250 ffi:%null-pointer))))
245 251
246(define-public scheduler-shutdown 252(define-public scheduler-shutdown
247 (let ((func (util ffi:void "GNUNET_SCHEDULER_shutdown"))) 253 (let ((func (util ffi:void "GNUNET_SCHEDULER_shutdown")))