Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: tarantool-patches@dev.tarantool.org, sergepetrenko@tarantool.org
Subject: [Tarantool-patches] [PATCH 2/8] fakesys: introduce fakeev_timer_remaining()
Date: Sun, 13 Dec 2020 18:15:24 +0100	[thread overview]
Message-ID: <8b3f7ff8778f2270ce5598984b7df3750cdda4a6.1607879643.git.v.shpilevoy@tarantool.org> (raw)
In-Reply-To: <cover.1607879643.git.v.shpilevoy@tarantool.org>

ev_timer_remaining() in libev returns number of seconds until the
timer will expire. It is used in raft code.

Raft is going to be tested using fakesys, and it means it needs
fakeev analogue of ev_timer_remaining().

Part of #5303
---
 src/lib/fakesys/fakeev.c | 10 ++++++++++
 src/lib/fakesys/fakeev.h |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/src/lib/fakesys/fakeev.c b/src/lib/fakesys/fakeev.c
index 8273c7ca8..715bf7b75 100644
--- a/src/lib/fakesys/fakeev.c
+++ b/src/lib/fakesys/fakeev.c
@@ -282,6 +282,16 @@ fakeev_timer_start(struct ev_loop *loop, struct ev_timer *base)
 	fakeev_timer_event_new((struct ev_watcher *)base, base->at);
 }
 
+double
+fakeev_timer_remaining(struct ev_loop *loop, struct ev_timer *base)
+{
+	(void)loop;
+	struct fakeev_event *e = fakeev_event_by_ev((struct ev_watcher *)base);
+	if (e == NULL)
+		return base->at;
+	return e->deadline - fakeev_time();
+}
+
 void
 fakeev_timer_again(struct ev_loop *loop, struct ev_timer *base)
 {
diff --git a/src/lib/fakesys/fakeev.h b/src/lib/fakesys/fakeev.h
index 89954b2e1..6d1c4dcd1 100644
--- a/src/lib/fakesys/fakeev.h
+++ b/src/lib/fakesys/fakeev.h
@@ -99,6 +99,10 @@ fakeev_loop(void);
 void
 fakeev_timer_start(struct ev_loop *loop, struct ev_timer *base);
 
+/** Emulator of raft_ev_timer_remaining(). */
+double
+fakeev_timer_remaining(struct ev_loop *loop, struct ev_timer *base);
+
 /** Emulator of ev_timer_again(). */
 void
 fakeev_timer_again(struct ev_loop *loop, struct ev_timer *base);
-- 
2.24.3 (Apple Git-128)

  parent reply	other threads:[~2020-12-13 17:15 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-13 17:15 [Tarantool-patches] [PATCH 0/8] Raft module, part 4 - unit tests Vladislav Shpilevoy
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 1/8] fakesys: fix ev_is_active not working on fake timers Vladislav Shpilevoy
2020-12-15  9:42   ` Serge Petrenko
2020-12-13 17:15 ` Vladislav Shpilevoy [this message]
2020-12-15  9:43   ` [Tarantool-patches] [PATCH 2/8] fakesys: introduce fakeev_timer_remaining() Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 3/8] raft: introduce raft_ev Vladislav Shpilevoy
2020-12-15 10:02   ` Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 4/8] test: introduce raft unit tests Vladislav Shpilevoy
2020-12-13 18:10   ` Vladislav Shpilevoy
2020-12-16 13:03   ` Serge Petrenko
2020-12-17 22:44     ` Vladislav Shpilevoy
2020-12-18  8:17       ` Serge Petrenko
2020-12-20 17:28         ` Vladislav Shpilevoy
2020-12-21  7:36           ` Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 5/8] raft: fix crash when received 0 term message Vladislav Shpilevoy
2020-12-16 13:05   ` Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 6/8] raft: fix ignorance of bad state receipt Vladislav Shpilevoy
2020-12-16 13:06   ` Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 7/8] raft: fix crash on election timeout decrease Vladislav Shpilevoy
2020-12-16 13:08   ` Serge Petrenko
2020-12-13 17:15 ` [Tarantool-patches] [PATCH 8/8] raft: fix crash on death " Vladislav Shpilevoy
2020-12-16 13:10   ` Serge Petrenko
2020-12-21 16:50 ` [Tarantool-patches] [PATCH 0/8] Raft module, part 4 - unit tests Vladislav Shpilevoy
2020-12-21 17:29 ` Vladislav Shpilevoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8b3f7ff8778f2270ce5598984b7df3750cdda4a6.1607879643.git.v.shpilevoy@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=sergepetrenko@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH 2/8] fakesys: introduce fakeev_timer_remaining()' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox