[опять glib glib] Теоретический вопрос
В соседнем треде нашел решение своей проблемы, но пока искал пробовал разные способы и вот используя один из них у меня возникло недопонимание ситуации. Вопрос теоретический, так что про смысл сего лучше не спрашивать.
Вот код
#include <stdio.h>
#include <gtk/gtk.h>
GCond* my_cond;
GMutex* my_mutex;
void fr(void)
{
my_mutex=g_mutex_new();
my_cond=g_cond_new();
g_mutex_lock(my_mutex);
GTimeVal tm;
tm.tv_sec=15;
tm.tv_usec=1;
if(!g_cond_timed_wait(my_cond,my_mutex,&tm))
printf("%d\n",tm.tv_sec);
g_mutex_unlock(my_mutex);
printf("2\n");
}
int main(void)
{
int b=0;
g_thread_init(NULL);
GThread* p = g_thread_create((gpointer) fr,NULL,TRUE,NULL);
g_thread_join(p);
printf("yes\n");
return 0;
}
Почему не происходит 15сек задержка, но при этом g_cond_timed_wait возвращает FALSE, что свидетельствует о завершение временного интервала?