Click here to Skip to main content
15,886,003 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Memory leak Pin
David Crow25-Feb-13 13:24
David Crow25-Feb-13 13:24 
AnswerRe: Memory leak Pin
Stefan_Lang26-Feb-13 4:04
Stefan_Lang26-Feb-13 4:04 
GeneralRe: Memory leak Pin
a_matseevsky26-Feb-13 10:59
a_matseevsky26-Feb-13 10:59 
GeneralRe: Memory leak Pin
Stefan_Lang26-Feb-13 22:44
Stefan_Lang26-Feb-13 22:44 
GeneralRe: Memory leak Pin
a_matseevsky27-Feb-13 2:09
a_matseevsky27-Feb-13 2:09 
GeneralRe: Memory leak Pin
Stefan_Lang27-Feb-13 2:52
Stefan_Lang27-Feb-13 2:52 
GeneralRe: Memory leak Pin
a_matseevsky27-Feb-13 11:44
a_matseevsky27-Feb-13 11:44 
Question[Solved] Memory leak in producer-consumer program Pin
noislude25-Feb-13 7:30
noislude25-Feb-13 7:30 
Hi all. Nice to meet you. Could you tell me how can I fix the memory leak of this code? I don't have a clue. Thanks.

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>


#define MAX 100
#define BUFSZ 10

int i;
int buffindex = 0;
char* buffer;

void* producer(void* p);
void* consumer(void* p);

pthread_cond_t cond_prod = PTHREAD_COND_INITIALIZER;
pthread_cond_t cond_con = PTHREAD_COND_INITIALIZER;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

int main(void)
{
    pthread_t prod, con;
    
    if((buffer = malloc(sizeof(char) * BUFSZ)) == NULL)        
    {     
       perror("malloc");
       exit(EXIT_FAILURE);
    }
    
    pthread_mutex_init(&mutex, NULL);
    pthread_cond_init(&cond_prod, NULL);
    pthread_cond_init(&cond_con, NULL);
    pthread_create(&prod, NULL , producer, NULL);
    pthread_create(&con,  NULL , consumer, NULL);
    pthread_join(prod, NULL);
    pthread_join(con,  NULL);
    pthread_cond_destroy(&cond_prod);
    pthread_cond_destroy(&cond_con);
    pthread_mutex_destroy(&mutex);
    free(buffer);
    return EXIT_SUCCESS;
}

void* producer(void* p)
{
    for(i = 0; i < MAX; i++)
    {
       pthread_mutex_lock(&mutex); 
       if(buffindex == BUFSZ)
       {
          pthread_cond_wait(&cond_prod, &mutex); /* down */
       }    
       buffer[buffindex++] = '@';
       printf("Produce: %d\n", buffindex);
       pthread_cond_signal(&cond_con); /* up */
       pthread_mutex_unlock(&mutex);
    }    
    pthread_exit(EXIT_SUCCESS);
    return NULL;
}

void* consumer(void* p)
{
   for(i = 0; i < MAX; i++) 
   {
      pthread_mutex_lock(&mutex);
      if(buffindex == -1)
      {
         pthread_cond_wait(&cond_con, &mutex); /* down */
      }     
      printf("Consume: %d\n", buffindex--);
      buffer[buffindex] = '\0';
      pthread_cond_signal(&cond_prod); /* up */ 
      pthread_mutex_unlock(&mutex);
   }    
   pthread_exit(EXIT_SUCCESS);
   return NULL;
}


modified 27-Feb-13 15:48pm.

AnswerRe: Memory leak in producer-consumer program Pin
Richard Andrew x6425-Feb-13 10:08
professionalRichard Andrew x6425-Feb-13 10:08 
GeneralRe: Memory leak in producer-consumer program Pin
noislude25-Feb-13 10:23
noislude25-Feb-13 10:23 
GeneralRe: Memory leak in producer-consumer program Pin
Richard Andrew x6425-Feb-13 10:33
professionalRichard Andrew x6425-Feb-13 10:33 
GeneralRe: Memory leak in producer-consumer program Pin
noislude25-Feb-13 10:42
noislude25-Feb-13 10:42 
QuestionRe: Memory leak in producer-consumer program Pin
David Crow25-Feb-13 13:28
David Crow25-Feb-13 13:28 
AnswerRe: Memory leak in producer-consumer program Pin
noislude25-Feb-13 13:33
noislude25-Feb-13 13:33 
GeneralRe: Memory leak in producer-consumer program Pin
Stefan_Lang26-Feb-13 3:29
Stefan_Lang26-Feb-13 3:29 
GeneralRe: Memory leak in producer-consumer program Pin
noislude26-Feb-13 8:07
noislude26-Feb-13 8:07 
GeneralRe: Memory leak in producer-consumer program Pin
Stefan_Lang26-Feb-13 22:21
Stefan_Lang26-Feb-13 22:21 
GeneralRe: Memory leak in producer-consumer program Pin
noislude26-Feb-13 22:27
noislude26-Feb-13 22:27 
GeneralRe: Memory leak in producer-consumer program Pin
Stefan_Lang26-Feb-13 23:01
Stefan_Lang26-Feb-13 23:01 
SuggestionRe: Memory leak in producer-consumer program Pin
noislude27-Feb-13 9:47
noislude27-Feb-13 9:47 
AnswerRe: Memory leak in producer-consumer program Pin
Vaclav_25-Feb-13 17:45
Vaclav_25-Feb-13 17:45 
QuestionWhat is the MFC future Pin
Arris7425-Feb-13 7:06
Arris7425-Feb-13 7:06 
AnswerRe: What is the MFC future Pin
Vaclav_25-Feb-13 9:46
Vaclav_25-Feb-13 9:46 
GeneralRe: What is the MFC future Pin
Richard Andrew x6425-Feb-13 10:07
professionalRichard Andrew x6425-Feb-13 10:07 
AnswerRe: What is the MFC future Pin
yu-jian25-Feb-13 21:30
yu-jian25-Feb-13 21:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.