chiark
/
gitweb
/
~mdw
/
secnet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
event loop: make tv_now and now into globals
[secnet]
/
secnet.c
diff --git
a/secnet.c
b/secnet.c
index 7869182b51ec5a653ea967f4154d746bd163ad88..f56fac235089940704eacb8802a24e2728af1ba8 100644
(file)
--- a/
secnet.c
+++ b/
secnet.c
@@
-247,10
+247,11
@@
static void system_phase_hook(void *sst, uint32_t newphase)
}
}
}
}
+struct timeval tv_now_global;
+uint64_t now_global;
+
static void run(void)
{
static void run(void)
{
- struct timeval tv_now;
- uint64_t now;
struct poll_interest *i;
int rv, nfds, remain, idx;
int timeout;
struct poll_interest *i;
int rv, nfds, remain, idx;
int timeout;
@@
-261,14
+262,14
@@
static void run(void)
Message(M_NOTICE,"%s [%d]: starting\n",version,secnet_pid);
do {
Message(M_NOTICE,"%s [%d]: starting\n",version,secnet_pid);
do {
- if (gettimeofday(&tv_now, NULL)!=0) {
+ if (gettimeofday(&tv_now
_global
, NULL)!=0) {
fatal_perror("main loop: gettimeofday");
}
fatal_perror("main loop: gettimeofday");
}
- now
=((uint64_t)tv_now
.tv_sec*(uint64_t)1000)+
-
((uint64_t)tv_now
.tv_usec/(uint64_t)1000);
+ now
_global=((uint64_t)tv_now_global
.tv_sec*(uint64_t)1000)+
+
((uint64_t)tv_now_global
.tv_usec/(uint64_t)1000);
idx=0;
for (i=reg; i; i=i->next) {
idx=0;
for (i=reg; i; i=i->next) {
- i->after(i->state, fds+idx, i->nfds, &tv_now
, &now
);
+ i->after(i->state, fds+idx, i->nfds, &tv_now
_global, &now_global
);
idx+=i->nfds;
}
remain=total_nfds;
idx+=i->nfds;
}
remain=total_nfds;
@@
-276,7
+277,7
@@
static void run(void)
timeout=-1;
for (i=reg; i; i=i->next) {
nfds=remain;
timeout=-1;
for (i=reg; i; i=i->next) {
nfds=remain;
- rv=i->before(i->state, fds+idx, &nfds, &timeout, &tv_now
, &now
);
+ rv=i->before(i->state, fds+idx, &nfds, &timeout, &tv_now
_global, &now_global
);
if (rv!=0) {
/* XXX we need to handle this properly: increase the
nfds available */
if (rv!=0) {
/* XXX we need to handle this properly: increase the
nfds available */