Move the clean_up function and add it to generator

This commit is contained in:
Ivaylo Ivanov 2019-01-13 18:48:43 +01:00
parent 696deabb91
commit ff14545d82
3 changed files with 29 additions and 25 deletions

View File

@ -42,6 +42,11 @@ int main(int argc, char *argv[]) {
exit(EXIT_FAILURE);
}
if(atexit(clean_up) != 0) {
fprintf(stderr, "ERROR: Cannot set exit function\n");
exit(EXIT_FAILURE);
}
process_signal();
/// 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++) {
if(buf_edges[i].chosen == true) {
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;

View File

@ -52,3 +52,26 @@ static void process_signal(void){
sigaction(SIGINT, &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);
}

View File

@ -94,27 +94,3 @@ int main(int argc, char *argv[]) {
}
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);
}