Всех приветствую. Проблема такая:
1.c
#include 2.h
...
void main()
...
pthread_create( &thread_id[0], NULL, &abc, NULL );
pthread_create( &thread_id[1], NULL, &def, NULL );
...
2.c
...
switch (i) {
case 0:
return -1;
break;
case 1:
pthread_kill(thread_id[1], 70 );
break;
case 2:
pthread_kill(thread_id[1], 71 );
break;
}
...
2.h
...
pthread_t thread_id[2];
...
3.c
...
void * def() {
signal(70, cont_slave);
signal(71, cont_master);
signal(72, exit);
while (1) {
sleep(2);
fprintf(stderr, "thread alive\n");
}
}
...
такие конструкции всегда при обработке дают ошибку сегментирования. поток запускается нормально, как только вызывается kill, всё падает.
Что читать и ковырять?