mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
changed signature of spawn()
This commit is contained in:
parent
b94216959f
commit
d4ddad603b
4 changed files with 16 additions and 14 deletions
|
@ -26,7 +26,7 @@ struct shmem {
|
|||
int insize, outsize; /**< Size of ingoing and outgoing queue, respectively. */
|
||||
int cond_out; /**< Whether to use a pthread_cond_t to signal if new samples are written to outqueue. */
|
||||
int cond_in; /**< Whether to use a pthread_cond_t to signal if new samples are written to inqueue. */
|
||||
const char * const exec; /**< External program to execute on start. */
|
||||
char **exec; /**< External program to execute on start. */
|
||||
|
||||
struct memtype *manager; /**< Manager for the shared memory region. */
|
||||
int fd; /**< Handle as returned by shm_open().*/
|
||||
|
|
|
@ -230,4 +230,4 @@ void rdtsc_sleep(uint64_t nanosecs, uint64_t start);
|
|||
/** Register a exit callback for program termination (SIGINT / SIGKILL). */
|
||||
void signals_init(void (*cb)(int signal, siginfo_t *sinfo, void *ctx));
|
||||
|
||||
pid_t spawn(const char* name, char **argv);
|
||||
pid_t spawn(const char* name, char *const argv[]);
|
||||
|
|
|
@ -46,9 +46,11 @@ int shmem_parse(struct node *n, config_setting_t *cfg)
|
|||
|
||||
int i;
|
||||
for (i = 0; i < config_setting_length(exec_cfg); i++) {
|
||||
shm->exec[i] = config_setting_get_string_elem(exec_cfg, i);
|
||||
if (!shm->exec[i])
|
||||
const char *elm = config_setting_get_string_elem(exec_cfg, i);
|
||||
if (!elm)
|
||||
cerror(exec_cfg, "Invalid format for exec");
|
||||
|
||||
shm->exec[i] = strdup(elm);
|
||||
}
|
||||
|
||||
shm->exec[i] = NULL;
|
||||
|
|
20
lib/utils.c
20
lib/utils.c
|
@ -302,15 +302,15 @@ void signals_init(void (*cb)(int signal, siginfo_t *sinfo, void *ctx))
|
|||
sigaction(SIGCHLD, &sa_chld, NULL);
|
||||
}
|
||||
|
||||
pid_t
|
||||
spawn(const char* name, char **argv) {
|
||||
pid_t pid = fork();
|
||||
switch(pid) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
return execvp(name, argv);
|
||||
default:
|
||||
return pid;
|
||||
pid_t spawn(const char* name, char *const argv[])
|
||||
{
|
||||
pid_t pid;
|
||||
|
||||
pid = fork();
|
||||
switch (pid) {
|
||||
case -1: return -1;
|
||||
case 0: return execvp(name, (char * const*) argv);
|
||||
}
|
||||
|
||||
return pid;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue