Another problem: my kernel doesn't seem to be delivering the SIGALRM the
second time around.
Works like a champ on Solaris though. I don't know if it has anything to
do with the execv or not.
agent/mibgroup/util_funcs.c:
signal(SIGALRM, restart_doit);
unsigned int atime = alarm(RESTARTSLEEP);
snmp_log(LOG_NOTICE, "alarm returned %u\n", atime);
restart_doit never gets called, that i can tell.
The setitimer in snmp_alarm is never called.
kill -s SIGALRM ${PID} doesn't get it done either.
sigpending always shows 0.
2.4.21-20.ELsmp #1 SMP
The following seems to run forever though, so its' not quite the same
somehow.
#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
static unsigned int atime = 0;
static char *myargs[2] = { "/tmp/sig", NULL };
void callback(int a) {
printf("callback\n");
}
int main(void) {
unsigned int loop = 0;
printf("setting alarm 1, for 3 secs\n");
signal(SIGALRM, callback);
atime = alarm(3);
printf("atime=%u\n", atime);
printf("waitread 5...\n");
waitread();
printf("setting alarm 2, for 3 secs\n");
signal(SIGALRM, callback);
atime = alarm(3);
printf("atime=%u\n", atime);
printf("waitread\n");
waitread();
execv("/tmp/sig", myargs);
printf("setting alarm 3, for 3 secs\n");
signal(SIGALRM, callback);
atime = alarm(3);
printf("atime=%u\n", atime);
printf("waitread\n");
waitread();
printf("DONE\n");
return 0;
}
int waitread() {
fd_set rfds;
struct timeval tv;
int retval;
/* Watch stdin (fd 0) to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
/* Wait up to five seconds. */
tv.tv_sec = 5;
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
if (retval == -1)
perror("select()");
else if (retval)
printf("Data is available now.\n");
/* FD_ISSET(0, &rfds) will be true. */
else
printf("No data within five seconds.\n");
return 0;
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders