efl

Форк
0
/
efreet_async_test.c 
89 строк · 1.5 Кб
1
/*
2

3
XXX: Disable test until a better implementation can be made
4
For now efreet_menu_async_parse is deprecated.
5

6

7
#ifdef HAVE_CONFIG_H
8
# include <config.h>
9
#endif
10

11

12
#include <unistd.h>
13

14
#include <Eina.h>
15
#include <Ecore.h>
16
#include <Efreet.h>
17

18
#define TCOUNT 10
19
#define MCOUNT 10
20
#define MENU "/etc/xdg/menus/applications.menu"
21

22
static int count = 0;
23
static Eina_Lock lock;
24
static Eina_Thread threads[TCOUNT];
25

26
static void
27
menu_cb(void *data EINA_UNUSED, Efreet_Menu *menu)
28
{
29
    efreet_menu_dump(menu, "");
30
    eina_lock_take(&lock);
31
    count++;
32
    fprintf(stderr, "count: %d\n", count);
33
    if (count == (MCOUNT * TCOUNT)) ecore_main_loop_quit();
34
    eina_lock_release(&lock);
35
    efreet_menu_free(menu);
36
}
37

38
static void *
39
thread_cb(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED)
40
{
41
    int i;
42
    for (i = 0; i < MCOUNT; i++) {
43
        efreet_menu_async_parse(MENU, menu_cb, NULL);
44
        usleep(1e5);
45
    }
46
    return NULL;
47
}
48

49
static void
50
create_threads(void)
51
{
52
    int i;
53

54
    for (i = 0; i < TCOUNT; i++)
55
    {
56
        if (!eina_thread_create(&threads[i], EINA_THREAD_NORMAL, -1, thread_cb, NULL))
57
            fprintf(stderr, "error: eina_thread_create\n");
58
        usleep(1e5);
59
    }
60
}
61

62
int
63
main(void)
64
{
65
    int i;
66

67
    eina_init();
68
    ecore_init();
69
    efreet_init();
70

71

72
    eina_lock_new(&lock);
73

74
    create_threads();
75
    ecore_main_loop_begin();
76
    for (i = 0; i < TCOUNT; i++)
77
        eina_thread_join(threads[i]);
78

79
    eina_lock_free(&lock);
80
    efreet_shutdown();
81
    ecore_shutdown();
82
    eina_shutdown();
83
*/
84

85
int
86
main(void)
87
{
88
    return 0;
89
}
90

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.