Move the clean_up function and add it to generator
This commit is contained in:
parent
696deabb91
commit
ff14545d82
@ -42,6 +42,11 @@ int main(int argc, char *argv[]) {
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(atexit(clean_up) != 0) {
|
||||||
|
fprintf(stderr, "ERROR: Cannot set exit function\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
process_signal();
|
process_signal();
|
||||||
|
|
||||||
/// Create a regex to check the input against
|
/// Create a regex to check the input against
|
||||||
@ -138,7 +143,7 @@ int main(int argc, char *argv[]) {
|
|||||||
for(int i=0; i < num_edges; i++) {
|
for(int i=0; i < num_edges; i++) {
|
||||||
if(buf_edges[i].chosen == true) {
|
if(buf_edges[i].chosen == true) {
|
||||||
res.edge_num++;
|
res.edge_num++;
|
||||||
res.edges[--new_best] = edges[i]; ///< We begin counting from 0
|
res.edges[--new_best] = buf_edges[i]; ///< We begin counting from 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res.valid = true;
|
res.valid = true;
|
||||||
|
@ -52,3 +52,26 @@ static void process_signal(void){
|
|||||||
sigaction(SIGINT, &sa, NULL);
|
sigaction(SIGINT, &sa, NULL);
|
||||||
sigaction(SIGTERM, &sa, NULL);
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Function to that cleans up the resources
|
||||||
|
* @details The function closes and destroys all semaphores,
|
||||||
|
* closes and destroys all shared memory objects and
|
||||||
|
* closes the file descriptors
|
||||||
|
* @param none
|
||||||
|
* @return none
|
||||||
|
**/
|
||||||
|
static void clean_up(void) {
|
||||||
|
/// Close and destory semaphores
|
||||||
|
close_sem(free_sem);
|
||||||
|
close_sem(use_sem);
|
||||||
|
close_sem(mutex);
|
||||||
|
|
||||||
|
destroy_sem(FREE_SEM_NAME);
|
||||||
|
destroy_sem(USE_SEM_NAME);
|
||||||
|
destroy_sem(MUTEX_NAME);
|
||||||
|
|
||||||
|
/// Close and destroy shared memory objects
|
||||||
|
close_shm(circ_buffer, sizeof(buffer_t));
|
||||||
|
destroy_shm(BUFF_SHM_NAME, buffer_shmfd);
|
||||||
|
}
|
||||||
|
@ -94,27 +94,3 @@ int main(int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to that cleans up the resources
|
|
||||||
* @details The function closes and destroys all semaphores,
|
|
||||||
* closes and destroys all shared memory objects and
|
|
||||||
* closes the file descriptors
|
|
||||||
* @param none
|
|
||||||
* @return none
|
|
||||||
**/
|
|
||||||
void clean_up(void) {
|
|
||||||
/// Close and destory semaphores
|
|
||||||
close_sem(free_sem);
|
|
||||||
close_sem(use_sem);
|
|
||||||
close_sem(mutex);
|
|
||||||
|
|
||||||
destroy_sem(FREE_SEM_NAME);
|
|
||||||
destroy_sem(USE_SEM_NAME);
|
|
||||||
destroy_sem(MUTEX_NAME);
|
|
||||||
|
|
||||||
/// Close and destroy shared memory objects
|
|
||||||
close_shm(circ_buffer, sizeof(buffer_t));
|
|
||||||
destroy_shm(BUFF_SHM_NAME, buffer_shmfd);
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user