_program_del(data);
}
-static void
+//TIZEN_ONLY(20230824) evas_gl_shader.c: Fix shader lock mechanism
+static Eina_Bool
_shader_lock(Evas_GL_Shared *shared,const char *cache_dir)
+//
{
char lock_path[PATH_MAX];
int ret;
if (ret >= PATH_MAX)
{
ERR("Truncated lock path : %s", lock_path);
- return;
+ //TIZEN_ONLY(20230824) evas_gl_shader: Fix shader lock mechanism
+ return EINA_FALSE;
+ //
}
shared->lock_shader = open(lock_path, O_RDWR | O_CREAT , S_IRUSR | S_IWUSR);
if(shared->lock_shader<0)
{
ERR("lock create is failed ");
- return;
+ //TIZEN_ONLY(20230824) evas_gl_shader: Fix shader lock mechanism
+ return EINA_FALSE;
+ //
}
/* lock for wait creating shader*/
if (fcntl(shared->lock_shader, F_SETLKW, &filelock) == -1)
{
ERR("lock take fail");
- return;
+ //TIZEN_ONLY(20230824) evas_gl_shader: Fix shader lock mechanism
+ return EINA_FALSE;
+ //
}
+ //TIZEN_ONLY(20230824) evas_gl_shader: Fix shader lock mechanism
+ return EINA_TRUE;
+ //
}
static void
goto Load;
//shader lock for wait other process
- _shader_lock(shared,bin_dir_path);
+ //TIZEN_ONLY(20230824) evas_gl_shader: Fix shader lock mechanism
+ if (!_shader_lock(shared,bin_dir_path)) return 0;
+ //
+
if(_evas_gl_common_shader_binary_init(shared))
{
_shader_unlock(shared);