�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.