�ivjo Jernej.

On Sat, 10 Jul 1999, Jernej Kov�e wrote:

> >Imam situacijo ko v glavni niti alociram kos pomnilnika z malloc() podam
> >niti poklicem free() da sprostim ta kos pomnilnika mi zadeva javi
> >segmentation fault in se usuje.
> 
> 
> Logicno bi bilo, da bi bila. Ceprav moras priznati, da to kar poskusas
> storiti ni niti najmanj lepo. Poskusaj prevekslati na tak nacin, da bos
> pomnilnik sprostil tam, kjer ga alociras, to je v glavni niti.

Lepse kot se za*bavat z dvema semaforjema in delat diplomo iz naslova kako iz
dve mutexov naredit en event semafor. :p.  

> Aja, dobro bi bilo, da posljes source.

Posiljam del source-a

//---------------------------
void serviceConnection(void *arg) {
  int rc=0;
  char buff[1];
  hl_pReqStruct pReq;
  int sockfd;

  sockfd=((int*)arg)[0]; // copy to local stack.
//  free(arg); // tukaj se usuje ce odkomentiram drugace deluje ampak imam
// mi pu��a pomnilnik.

< SNIP SNIP >

}
  
//---------------------------
<SNIP SNIP>

  if (pthread_attr_init(&global.tInit)) {
    printf("Error initializing threads (1)\n");
    exit(2);
  }

  if (pthread_attr_setdetachstate(&global.tInit,PTHREAD_CREATE_DETACHED)) {
    printf("Error initializing threads (2)\n");
    exit(3);
  }

<SNIP SNIP>
    parameter=(int *)malloc(sizeof(int));
    if (!parameter) {
      printf("Can\'t allocate memory for thread parameter\n");
      exit(6);
    }
    clientSock=accept(global.serverSock,&connection,&len);
    if (-1==clientSock) {
      free(parameter); 
      continue;
    }
    parameter[0]=clientSock;
    printf("Creating thread!\n");
    if
(pthread_create(&tid,&global.tInit,(void*)&serviceConnection,parameter)) {
<SNIP SNIP> //---------------------------

--
best regards,
Rok Papez.

Reply via email to