Branch Coverage

third_party/modest/source/mycore/mythread.c
Criterion Covered Total %
branch 37 80 46.2


line true false branch
32 0 22 if(threads_count == 0)
41 0 22 if(mythread->entries == NULL)
45 0 22 if(mythread->attr == NULL)
63 0 22 if(mythread == NULL)
66 22 0 if(mythread->entries) {
75 22 0 if(self_destroy) {
87 0 22 if(mythread->entries_length >= mythread->entries_size)
102 0 22 if(entry->context.mutex == NULL)
105 0 22 if(mythread_mutex_wait(mythread, entry->context.mutex)) {
111 0 22 if(entry->thread == NULL) {
131 0 0 for (size_t i = 0; i < mythread->entries_length; i++) {
132 0 0 if(before_join)
135 0 0 if(mythread_thread_join(mythread, mythread->entries[i].thread))
146 22 22 for (size_t i = 0; i < mythread->entries_length; i++)
148 14 8 if(before_join)
163 0 12 if(mythread->opt & MyTHREAD_OPT_STOP)
168 12 12 for (size_t i = 0; i < mythread->entries_length; i++)
170 13 12 while((mythread->entries[i].context.opt & MyTHREAD_OPT_STOP) == 0) {
180 0 24 if(mythread->opt & MyTHREAD_OPT_WAIT)
185 24 24 for (size_t i = 0; i < mythread->entries_length; i++)
187 25 12 while((mythread->entries[i].context.opt & MyTHREAD_OPT_STOP) == 0 &&
13 12 while((mythread->entries[i].context.opt & MyTHREAD_OPT_STOP) == 0 &&
199 24 42 if(mythread->opt & MyTHREAD_OPT_WAIT) {
206 42 42 for (size_t i = 0; i < mythread->entries_length; i++)
208 34 8 if(mythread->entries[i].context.opt & MyTHREAD_OPT_STOP) {
211 0 34 if(mythread_mutex_post(mythread, mythread->entries[i].context.mutex))
221 6 6 for (size_t i = 0; i < mythread->entries_length; i++)
223 0 6 if(mythread->entries[i].context.status)
245 0 0 if(before_join)
248 0 0 if(mythread_thread_join(entry->context.mythread, entry->thread))
256 0 0 if(before_join)
270 0 0 if(entry->context.opt & MyTHREAD_OPT_STOP)
275 0 0 while((entry->context.opt & MyTHREAD_OPT_STOP) == 0) {
284 0 0 if(entry->context.opt & MyTHREAD_OPT_WAIT)
289 0 0 while((entry->context.opt & MyTHREAD_OPT_STOP) == 0 && (entry->context.opt & MyTHREAD_OPT_WAIT) == 0) {
0 0 while((entry->context.opt & MyTHREAD_OPT_STOP) == 0 && (entry->context.opt & MyTHREAD_OPT_WAIT) == 0) {
298 0 0 if(entry->context.opt & MyTHREAD_OPT_WAIT) {
301 0 0 else if(entry->context.opt & MyTHREAD_OPT_STOP) {
304 0 0 if(mythread_mutex_post(entry->context.mythread, entry->context.mutex))
326 0 14 while((entry->context.opt & MyTHREAD_OPT_QUIT) == 0)