Lines 29-37
int cmd_exit(void **args)
Link Here
|
29 |
{ |
29 |
{ |
30 |
item *i, *j; |
30 |
item *i, *j; |
31 |
|
31 |
|
|
|
32 |
fbsplash_profile("cmd exit handler entry point\n"); |
33 |
|
32 |
pthread_cancel(th_switchmon); |
34 |
pthread_cancel(th_switchmon); |
|
|
35 |
|
36 |
fbsplash_profile("th_switchmon cancelled\n"); |
37 |
|
33 |
pthread_mutex_lock(&mtx_paint); |
38 |
pthread_mutex_lock(&mtx_paint); |
34 |
|
39 |
|
|
|
40 |
fbsplash_profile("mtx paint acquired\n"); |
41 |
|
35 |
if (ctty == CTTY_SILENT) { |
42 |
if (ctty == CTTY_SILENT) { |
36 |
if (config.effects & FBSPL_EFF_FADEOUT) |
43 |
if (config.effects & FBSPL_EFF_FADEOUT) |
37 |
fbsplashr_render_screen(theme, true, false, FBSPL_EFF_FADEOUT); |
44 |
fbsplashr_render_screen(theme, true, false, FBSPL_EFF_FADEOUT); |
Lines 45-53
int cmd_exit(void **args)
Link Here
|
45 |
|
52 |
|
46 |
pthread_mutex_unlock(&mtx_paint); |
53 |
pthread_mutex_unlock(&mtx_paint); |
47 |
|
54 |
|
|
|
55 |
fbsplash_profile("about to kill the sighandler thread\n"); |
56 |
|
48 |
pthread_kill(th_sighandler, SIGINT); |
57 |
pthread_kill(th_sighandler, SIGINT); |
49 |
pthread_join(th_sighandler, NULL); |
58 |
pthread_join(th_sighandler, NULL); |
50 |
|
59 |
|
|
|
60 |
fbsplash_profile("sighandler thread killed\n"); |
61 |
|
51 |
fbsplashr_theme_free(theme); |
62 |
fbsplashr_theme_free(theme); |
52 |
fbsplashr_cleanup(); |
63 |
fbsplashr_cleanup(); |
53 |
fbsplash_lib_cleanup(); |
64 |
fbsplash_lib_cleanup(); |
Lines 59-64
int cmd_exit(void **args)
Link Here
|
59 |
i = j; |
70 |
i = j; |
60 |
} |
71 |
} |
61 |
|
72 |
|
|
|
73 |
fbsplash_profile("about to exit\n"); |
74 |
|
62 |
exit(0); |
75 |
exit(0); |
63 |
|
76 |
|
64 |
/* We never get here */ |
77 |
/* We never get here */ |