[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 39/42: server: Add type checking.
From: |
gnunet |
Subject: |
[gnunet-scheme] 39/42: server: Add type checking. |
Date: |
Sat, 10 Sep 2022 19:08:32 +0200 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit c49d527d0021e3e05db5019a3e0c417c31b4acb2
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Sat Sep 10 18:58:28 2022 +0200
server: Add type checking.
Some type errors were encountered in the past, a little more
information would have been helpful.
---
gnu/gnunet/server.scm | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/gnu/gnunet/server.scm b/gnu/gnunet/server.scm
index 88ff883..85e28c5 100644
--- a/gnu/gnunet/server.scm
+++ b/gnu/gnunet/server.scm
@@ -31,7 +31,8 @@
loop:spawner loop:lost-and-found run-loop spawn-server-loop)
(import (only (rnrs base)
begin define cons case else apply values quote lambda
- if error list let and append assert string? procedure?)
+ if error list let and append assert string? procedure?
+ list? symbol?)
(only (rnrs records syntactic)
define-record-type)
(only (fibers)
@@ -49,7 +50,7 @@
make-lost-and-found collect-lost-and-found-operation
losable-lost-and-found lost-and-found?)
(only (gnu gnunet mq)
- close-queue!)
+ message-queue? close-queue!)
(only (gnu gnunet mq error-reporting)
report-error)
(only (gnu gnunet mq-impl stream)
@@ -71,6 +72,8 @@ This sends a @var{message} to @var{control-channel} or waits
for
@var{terminal-condition} to be signalled, whichever happens first.
If the message is sent, @code{#true} is returned. Otherwise, if
@var{terminal-condition} was signalled, return @code{#false} instead."
+ (assert (condition? terminal-condition))
+ (assert (channel? control-channel))
(perform-operation
(choice-operation
;; Nothing to do when the <server> is permanently disconnected,
@@ -163,6 +166,8 @@ this maybe-sends @code{disconnect!} to the control channel."
(error 'disconnect! ; TODO: test
"wrong server object type"
(list name type? server))))
+ (assert (symbol? name)) ; XXX not sure which
+ (assert (procedure? type?))
disconnect!)
@@ -215,6 +220,9 @@ this maybe-sends @code{disconnect!} to the control channel."
@item reconnect!, by calling the thunk @var{k/reconnect} in tail position
TODO: maybe 'lost'"
+ (assert (message-queue? mq))
+ (assert (condition? terminal-condition))
+ (assert (procedure? k/reconnect!))
(match message
(('oops! key . arguments)
;; Some unknown error, report it (report-error) and close
@@ -240,6 +248,7 @@ TODO: maybe 'lost'"
;; TODO: document, check types
;; state: <loop>
(define (run-loop state . rest)
+ (assert (loop? state))
(define handlers (apply (loop:message-handlers-maker state) state rest))
(define error-handler
(apply (loop:error-handler*-maker state) state rest))
@@ -268,6 +277,10 @@ TODO: maybe 'lost'"
(define* (spawn-server-loop server #:key (make-loop make-loop)
(initial-extra-loop-arguments '())
(spawn spawn-fiber) #:allow-other-keys #:rest r)
+ (assert (server? server))
+ (assert (procedure? make-loop))
+ (assert (list? initial-extra-loop-arguments))
+ (assert (procedure? spawn))
"[TODO] and return @var{server}"
(define loop-arguments
(append (list #:terminal-condition (server-terminal-condition server)
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] 27/42: cadet/client: Simplify more., (continued)
- [gnunet-scheme] 27/42: cadet/client: Simplify more., gnunet, 2022/09/10
- [gnunet-scheme] 23/42: dht/client: Re-indent., gnunet, 2022/09/10
- [gnunet-scheme] 22/42: nse/indent: Re-indent., gnunet, 2022/09/10
- [gnunet-scheme] 26/42: server: Inline single-use server->loop-arguments., gnunet, 2022/09/10
- [gnunet-scheme] 24/42: cadet/client: Re-indent., gnunet, 2022/09/10
- [gnunet-scheme] 33/42: server: Document 'make-loop'., gnunet, 2022/09/10
- [gnunet-scheme] 30/42: doc/service-communication: Document the control loop., gnunet, 2022/09/10
- [gnunet-scheme] 18/42: cadet/client: Rewrite with run-loop., gnunet, 2022/09/10
- [gnunet-scheme] 32/42: server: Add type checking to make-loop., gnunet, 2022/09/10
- [gnunet-scheme] 36/42: doc/concurrency: Add missing label for lost-and-found., gnunet, 2022/09/10
- [gnunet-scheme] 39/42: server: Add type checking.,
gnunet <=
- [gnunet-scheme] 35/42: doc/service-communication: Document #:control-message-handler., gnunet, 2022/09/10
- [gnunet-scheme] 37/42: doc/service-communication: Document run-loop., gnunet, 2022/09/10
- [gnunet-scheme] 34/42: server: Rename control -> continue., gnunet, 2022/09/10
- [gnunet-scheme] 38/42: doc/service-communication: Add procedures to the index., gnunet, 2022/09/10
- [gnunet-scheme] 40/42: doc/service-communication: Add missing argument of make-disconnect!., gnunet, 2022/09/10
- [gnunet-scheme] 41/42: NEWS: Update., gnunet, 2022/09/10
- [gnunet-scheme] 42/42: Merge branch 'server-unification', gnunet, 2022/09/10