[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 04/04: tests/cadet: Simplify test by removing atomics.
From: |
gnunet |
Subject: |
[gnunet-scheme] 04/04: tests/cadet: Simplify test by removing atomics. |
Date: |
Thu, 25 Aug 2022 21:06:27 +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 cb740f7387b4fdc8109d4c41528944fd47e30a2c
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Thu Aug 25 21:05:33 2022 +0200
tests/cadet: Simplify test by removing atomics.
It does #:hz 0 and #:parallelism 1, the atomic boxes are pointless.
* tests/cadet.scm
("data is properly sent in response to acknowledgements, in-order"):
Remove atomic boxes.
---
tests/cadet.scm | 33 ++++++++++++---------------------
1 file changed, 12 insertions(+), 21 deletions(-)
diff --git a/tests/cadet.scm b/tests/cadet.scm
index 1c60458..b883f5d 100644
--- a/tests/cadet.scm
+++ b/tests/cadet.scm
@@ -38,7 +38,6 @@
(rnrs bytevectors)
(only (fibers scheduler)
yield-current-task)
- (ice-9 atomic)
(ice-9 match)
(srfi srfi-8)
(srfi srfi-64)
@@ -315,13 +314,11 @@
(open-channel! server address0 (message-handlers)))
(define message-queue
(channel-message-queue channel))
- (define n-added/non-atomic 0) ; how many messages have been added to
the queue so far
- (define n-added (make-atomic-box 0))
+ ;; No atomic boxes are required here even though they are accessed and
mutated
+ ;; from multiple fibers, because of #:parallelism 0 and #:hz 0.
+ (define n-added 0) ; how many messages have been added to the queue so
far
(define n-sent 0) ; how many of those messages have been irrevocably
sent
- (define total-acknowledgements
- (make-atomic-box 0))
- (define total-acknowledgements/non-atomic
- 0)
+ (define total-acknowledgements 0)
(define (make-notify-sent! i)
(lambda ()
;; Verify that messages were sent in-order,
@@ -332,12 +329,10 @@
;; messages are sent sequentially.
(set! n-sent (+ n-sent 1))
;; an additional check.
- ;; Memory order: acquire.
- (assert (<= n-sent (atomic-box-ref n-added)))
+ (assert (<= n-sent n-added))
;; Verify that the number of acknowledgements is respected.
- ;; Memory order: acquire.
- (assert (<= n-sent (atomic-box-ref total-acknowledgements)))
- (values)))
+ (assert (<= n-sent total-acknowledgements))
+ (values)))
(let loop ((remaining messages+acknowledgements))
(match remaining
(('synchronize . remaining)
@@ -346,7 +341,7 @@
;; passage of some time).
(let loop ((old-to-be-sent +inf.0))
(define new-to-be-sent
- (- (min total-acknowledgements/non-atomic n-added/non-atomic)
n-sent))
+ (- (min total-acknowledgements n-added) n-sent))
(assert (<= 0 new-to-be-sent))
(assert (< new-to-be-sent old-to-be-sent)) ; bail out if no
progress is made
(when (< 0 new-to-be-sent)
@@ -362,18 +357,14 @@
(loop remaining))
((#(n-new-messages n-new-acknowledgements) . remaining)
(put-message server-channel n-new-acknowledgements)
- (set! total-acknowledgements/non-atomic
- (+ n-new-acknowledgements
total-acknowledgements/non-atomic))
- ;; Memory order: release
- (atomic-box-set! total-acknowledgements
total-acknowledgements/non-atomic)
+ (set! total-acknowledgements
+ (+ n-new-acknowledgements total-acknowledgements))
(let loop2 ((k 0))
(cond ((< k n-new-messages)
- (set! n-added/non-atomic (+ 1 n-added/non-atomic))
- ;; Memory order: release
- (atomic-box-set! n-added n-added/non-atomic)
+ (set! n-added (+ 1 n-added))
(send-message! message-queue message
#:notify-sent!
- (make-notify-sent! (- n-added/non-atomic
1)))
+ (make-notify-sent! (- n-added 1)))
(loop2 (+ k 1)))
(#true (loop remaining)))))
(()
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.