efl - evas - sw engine - donmt free spinlock because cache always needed

never free the shm pool cache spinlock as it is alwasy needed once
initiialized. this likely fixes a bsd hardlock issues

@fix
This commit is contained in:
Carsten Haitzler 2016-03-29 12:09:40 +09:00
parent a536f068dd
commit 5f307809b1
1 changed files with 6 additions and 2 deletions

View File

@ -26,6 +26,7 @@ struct _Outbuf_Region
int h; int h;
}; };
static Eina_Bool shmpool_initted = EINA_FALSE;
static Eina_List *shmpool = NULL; static Eina_List *shmpool = NULL;
static int shmsize = 0; static int shmsize = 0;
static int shmmemlimit = 20 * 1024 * 1024; static int shmmemlimit = 20 * 1024 * 1024;
@ -150,7 +151,11 @@ _clear_xob(int psync)
void void
evas_software_xlib_outbuf_init(void) evas_software_xlib_outbuf_init(void)
{ {
eina_spinlock_new(&shmpool_lock); if (!shmpool_initted)
{
shmpool_initted = EINA_TRUE;
eina_spinlock_new(&shmpool_lock);
}
} }
void void
@ -192,7 +197,6 @@ evas_software_xlib_outbuf_free(Outbuf *buf)
eina_array_flush(&buf->priv.onebuf_regions); eina_array_flush(&buf->priv.onebuf_regions);
free(buf); free(buf);
_clear_xob(0); _clear_xob(0);
eina_spinlock_free(&shmpool_lock);
} }
Outbuf * Outbuf *