Матрона, помоги

Ответить
Андрей0

Матрона, помоги

Сообщение Андрей0 »

Подскажит по поводу g_cond_wait

main.c :

...
thread.mutex = g_mutex_new();
thread.cond = g_cond_new();
thread.main_thread = g_thread_create(main_thread,main_window,TRUE,NULL);
thread.stream = NULL;
g_mutex_lock(thread.mutex);
thread.status = STATUS_INIT;
g_cond_signal(thread.cond);
g_mutex_unlock(thread.mutex);
...

а в ните созданой в main.c такой код:

...
while(1){
g_mutex_lock(thread.mutex);
g_print("enter to loop thread...\n");
g_cond_wait(thread.cond,thread.mutex);
if(thread.status == STATUS_INIT){
g_print("enter to init...\n");
...

Так вот фраза "enter to loop thread..." пишется а "enter to init..."
нифига, отсуда следует что g_cond_wait подвисла и не хочет
воспринимать сигнал, посланый ф-ией g_cond_signal :(

Как побороть трабл?

Матрона, на тебя одна надежда!
Math

Сообщение Math »

Сигнал послан до того как успела создаться нить.
Ответить

Вернуться в «Просьбы о помощи к Мати Матроне»