[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[COMMITTED 1/3] poked: Add support for restart of libpoke
From: |
Mohammad-Reza Nabipoor |
Subject: |
[COMMITTED 1/3] poked: Add support for restart of libpoke |
Date: |
Thu, 10 Mar 2022 22:56:27 +0330 |
2022-03-10 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
* poked/poked.c (main): Add `poked_restart` support.
* poked/poked.pk (poked_restart): New function.
(__poked_restart_p): New variable.
---
ChangeLog | 6 ++++++
poked/poked.c | 9 ++++++++-
poked/poked.pk | 2 ++
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 262a4f11..9778fdfb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-03-10 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
+
+ * poked/poked.c (main): Add `poked_restart` support.
+ * poked/poked.pk (poked_restart): New function.
+ (__poked_restart_p): New variable.
+
2022-03-10 Jose E. Marchesi <jemarch@gnu.org>
* libpoke/libpoke.h: Indentation and other visual improvements.
diff --git a/poked/poked.c b/poked/poked.c
index 182f0340..705341ee 100644
--- a/poked/poked.c
+++ b/poked/poked.c
@@ -100,7 +100,7 @@ main ()
struct usock_buf *inbuf;
void *ret;
int done_p = 0;
- uint64_t idx = 0;
+ uint64_t idx;
srv = usock_new ("/tmp/poked.ipc");
if (srv == NULL)
@@ -111,6 +111,8 @@ main ()
if (pthread_create (&th, &thattr, srvthread, srv) != 0)
err (1, "pthread_create() failed");
+poked_restart:
+ idx = 0;
poked_init ();
while (!done_p)
{
@@ -185,6 +187,11 @@ main ()
continue;
#endif
+ if (pk_int_value (pk_decl_val (pkc, "__poked_restart_p")))
+ {
+ poked_free ();
+ goto poked_restart;
+ }
if (pk_int_value (pk_decl_val (pkc, "__poked_exit_p")))
{
done_p = 1;
diff --git a/poked/poked.pk b/poked/poked.pk
index 3682fb3b..d0b64c49 100644
--- a/poked/poked.pk
+++ b/poked/poked.pk
@@ -21,8 +21,10 @@ load "pk-dump-minimal.pk";
// FIXME be endian-correct
// FIXME offset<long,N> -> offset<ulong,N>
+var __poked_restart_p = 0;
var __poked_exit_p = 0;
+fun poked_restart = void: { __poked_restart_p = 1; exit; }
fun poked_exit = void: { __poked_exit_p = 1; exit; }
fun poked_defer = void: {}
fun poked_ehandler = (Exception exception) void:
--
2.35.1
- [COMMITTED 1/3] poked: Add support for restart of libpoke,
Mohammad-Reza Nabipoor <=