Всех приветствую. Проблема такая:
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, всё падает.
Что читать и ковырять?






