forked from enlightenment/efl
eet: force thread to always run during eet_cache_concurrency test.
This commit is contained in:
parent
b6aaef651b
commit
2fdc05863d
|
@ -1,3 +1,7 @@
|
||||||
|
2013-07-02 Cedric Bail
|
||||||
|
|
||||||
|
* Eet: force thread to always run during eet_cache_concurrency test.
|
||||||
|
|
||||||
2013-06-25 Tom Hacohen
|
2013-06-25 Tom Hacohen
|
||||||
|
|
||||||
* Evas textblock: Fixed issue when parsing formats with quotes.
|
* Evas textblock: Fixed issue when parsing formats with quotes.
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -195,6 +195,7 @@ Improvements:
|
||||||
* evas: use eo array of callbacks to reduce callbacks memory footprint of Evas_Object_Box and Evas_Object_Table.
|
* evas: use eo array of callbacks to reduce callbacks memory footprint of Evas_Object_Box and Evas_Object_Table.
|
||||||
* evas: optimized path for when map use the same color for all corner.
|
* evas: optimized path for when map use the same color for all corner.
|
||||||
* Edje entry: Move cursor to correct position when selection handlers are pressed.
|
* Edje entry: Move cursor to correct position when selection handlers are pressed.
|
||||||
|
* eet: force thread to always run during eet_cache_concurrency test.
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
* Fix a memory leak in ecore_con_dns when using ecore_con_server_connect
|
* Fix a memory leak in ecore_con_dns when using ecore_con_server_connect
|
||||||
|
|
|
@ -1843,10 +1843,14 @@ START_TEST(eet_cipher_decipher_simple)
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
static Eina_Bool open_worker_stop;
|
static Eina_Bool open_worker_stop;
|
||||||
|
static Eina_Condition open_worker_cond;
|
||||||
|
static Eina_Lock open_worker_mutex;
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
open_close_worker(void *path, Eina_Thread tid EINA_UNUSED)
|
open_close_worker(void *path, Eina_Thread tid EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
static Eina_Bool first = EINA_TRUE;
|
||||||
|
|
||||||
while (!open_worker_stop)
|
while (!open_worker_stop)
|
||||||
{
|
{
|
||||||
Eet_File *ef = eet_open((char const *)path, EET_FILE_MODE_READ);
|
Eet_File *ef = eet_open((char const *)path, EET_FILE_MODE_READ);
|
||||||
|
@ -1858,6 +1862,14 @@ open_close_worker(void *path, Eina_Thread tid EINA_UNUSED)
|
||||||
if (err_code != EET_ERROR_NONE)
|
if (err_code != EET_ERROR_NONE)
|
||||||
return "eet_close() failed";
|
return "eet_close() failed";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
{
|
||||||
|
eina_lock_take(&open_worker_mutex);
|
||||||
|
eina_condition_broadcast(&open_worker_cond);
|
||||||
|
eina_lock_release(&open_worker_mutex);
|
||||||
|
first = EINA_FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1876,17 +1888,24 @@ START_TEST(eet_cache_concurrency)
|
||||||
eet_init();
|
eet_init();
|
||||||
eina_threads_init();
|
eina_threads_init();
|
||||||
|
|
||||||
|
eina_lock_new(&open_worker_mutex);
|
||||||
|
eina_condition_new(&open_worker_cond, &open_worker_mutex);
|
||||||
|
|
||||||
/* create a file to test with */
|
/* create a file to test with */
|
||||||
fail_if(!(file = tmpnam(file)));
|
fail_if(!(file = tmpnam(file)));
|
||||||
ef = eet_open(file, EET_FILE_MODE_WRITE);
|
ef = eet_open(file, EET_FILE_MODE_WRITE);
|
||||||
fail_if(!ef);
|
fail_if(!ef);
|
||||||
fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0));
|
fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0));
|
||||||
|
|
||||||
|
eina_lock_take(&open_worker_mutex);
|
||||||
/* start a thread that repeatedly opens and closes a file */
|
/* start a thread that repeatedly opens and closes a file */
|
||||||
open_worker_stop = 0;
|
open_worker_stop = 0;
|
||||||
r = eina_thread_create(&thread, EINA_THREAD_NORMAL, -1, open_close_worker, file);
|
r = eina_thread_create(&thread, EINA_THREAD_NORMAL, -1, open_close_worker, file);
|
||||||
fail_unless(r);
|
fail_unless(r);
|
||||||
|
|
||||||
|
eina_condition_wait(&open_worker_cond);
|
||||||
|
eina_lock_release(&open_worker_mutex);
|
||||||
|
|
||||||
/* clear the cache repeatedly in this thread */
|
/* clear the cache repeatedly in this thread */
|
||||||
for (n = 0; n < 20000; ++n)
|
for (n = 0; n < 20000; ++n)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue