디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

횽님 GTK 질문좀염... 굽신굽신

Chaos.PP(210.107) 2009.11.29 21:04:43
조회 84 추천 0 댓글 0

 GTK 에서 p쓰레드 돌리고 있어요....

원래는 각 스레드에 usleep() 걸어줘서 대기하다 실행시키는 방법으로 했었는데,

timer를 사용해서 SIGALRM 받아서 핸들러에서 pthread_kill 을 각 스레드에게 돌려서

실행 시키는 걸로 바꿀려고 하거든요.

근대 문제는 최초에 Starting 스레드 하나만 돌리다가 \'업무시작\'을 해주면 Starting 스레드에서

다른 작업을 해주는 스레드들을 create 시켜주기땜시 시그널을 그전까지는 못받거든요.

그래서 메인에다가는 타이머를 초기화 못시키고 Starting 스레드에다가 넣어줘야 할텐데 이놈이

다른 스레드들 create 시키고 나서 죽어버립니당 흑.

타이머를 켜놓고 죽으라고 해도 타이머가 동작안하는 것 같네요.. 여러가지 테스트를 해봐도 동작을 안함....

대략적인 코드 밑에다가 적을게욤... 도와주세요~ 굽신굽신... ㅠ.ㅠ

void *다른 스레드들()
{
    시그널 블럭 걸어놓음
    sigwait(&각각의 마스크들, &sigtype);
            // 각각 할일들함.
}

void *Thread_Starting()
{
 int sig_type;
 FILE *fp;
 time_t cur_time;
 
 sigemptyset(&newmask_4);
 sigaddset(&newmask_4, SIGUSR1);
 pthread_sigmask(SIG_BLOCK, &newmask_4, NULL);

 gdk_threads_enter();
 gtk_text_insert(text3, NULL, NULL, NULL, "Starting threads created\\n", -1);
 gdk_threads_leave();

 while(1) {
  usleep(100000);
  
  if (start_now == NOW) {                      <=== 업무시작 버튼 누르면 활성화
   fp = fopen(f_name, "rb+");
   fread(l, sizeof(locker)*MAXIMUM_LOCKER, 1, fp);
   
   pthread_create(&Thread_3, NULL, &Thread_Ending, NULL);
   pthread_create(&Thread_1, NULL, &Thread_Backup, NULL);
   pthread_create(&Thread_2, NULL, &Thread_Display, NULL);
   pthread_create(&Thread_5, NULL, &control_func, NULL);
   pthread_create(&Thread_6, NULL, &Time_display, NULL);

   usleep(1000000);
   
   // Timer Set                                      <=== 문제의 타이머
   Timer(0.1, 0.1);
   
   gdk_threads_enter();
   gtk_text_insert(text3, NULL, NULL, NULL, "Starting threads terminated\\n", -1);
   gdk_threads_leave();  
  
   pthread_kill(Thread_3, SIGUSR2);
   pthread_exit(0);
  }
 }
}

void Clock()     <= 타이머에서 시그널 핸들러
{
 pthread_kill(Thread_1, SIGUSR1);

 pthread_kill(Thread_2, SIGUSR1);
 pthread_kill(Thread_4, SIGUSR1);
 pthread_kill(Thread_6, SIGUSR1);
}

void Timer(float start, float interval)            <== 타이머 부분
{
 struct sigaction sa;

 struct itimerval timer;

 memset (&sa, 0, sizeof (sa));

 sa.sa_handler = &Clock;

 sigaction(SIGALRM, &sa, NULL);

 timer.it_value.tv_sec = 0;

 timer.it_value.tv_usec = start * 1000000;

 timer.it_interval.tv_sec = 0;

 timer.it_interval.tv_usec = interval * 1000000;

 setitimer (ITIMER_REAL, &timer, NULL);
}

int main (int argc, char *argv[])
{
       pthread_create(&Thread_4, NULL, &Thread_Starting, NULL);
       ......  이것저것 버튼 프레임을 만듬
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
161969 프로그래밍 언어 종류 [4] 유리한갤로그로 이동합니다. 09.12.12 274 0
161967 나는 컴퓨터구조 과목에 자신있다!! 하는 사람만 보삼 [8] 용82(112.150) 09.12.12 178 0
161963 프로그램이 맘대로 안짜져서 격하게 분노; [15] 물불.갤로그로 이동합니다. 09.12.12 128 0
161961 나도 스틀읭카피 [4] ㅇㅇㅃ갤로그로 이동합니다. 09.12.12 111 0
161959 근데 유리한횽 지금 7세그 최고 기록이 얼마임? [4] prismatic갤로그로 이동합니다. 09.12.12 81 0
161957 읭으이 [3] prismatic갤로그로 이동합니다. 09.12.12 46 0
161956 심심한 strcpy [5] algo갤로그로 이동합니다. 09.12.12 71 0
161955 c언어를 배우고 싶어요. [87] 꿈남갤로그로 이동합니다. 09.12.12 287 0
161954 밑에 랜덤함수 질문 올렸던 뉴비인데 코드좀 봐주세요 (cpp) [14] 물불.갤로그로 이동합니다. 09.12.12 101 0
161952 간만에 우붕투 다시설치 [1] prismatic갤로그로 이동합니다. 09.12.12 54 0
161951 7 세그먼트 [8] 천재플머(61.77) 09.12.12 140 0
161948 요즘 옴니아2 사면 호구? [2] usoo0갤로그로 이동합니다. 09.12.12 69 0
161947 열등한 Null-Terminated String 따위 훗. [3] algo갤로그로 이동합니다. 09.12.12 59 0
161943 랜덤함수에 대해서 질문; (c, cpp) [3] 물불.갤로그로 이동합니다. 09.12.12 70 0
161942 펄 공부좀 할려고 하는데 오라클때문에 실행이 안되네. [3] dd(211.223) 09.12.12 59 0
161940 나 다단계 갔다왔음 ㅠ.ㅠ [2] Vita500갤로그로 이동합니다. 09.12.12 67 0
161938 strlen은 뭘로 짯길래 왜케 빠름? [6] 성대아싸(121.137) 09.12.12 134 0
161937 형님들 이 프로그램에 대해 질문있어요ㅠ [7] emt(221.138) 09.12.12 98 0
161936 형들 나 완전 신기한거 발견함 [7] 허허벌판갤로그로 이동합니다. 09.12.12 139 0
161935 나 다단계 갔다왔음 ㅠ.ㅠ [3] 신발라마갤로그로 이동합니다. 09.12.11 168 0
161934 기말따위 때려치자 - 7 세그먼트 [7] JuEUS-U갤로그로 이동합니다. 09.12.11 103 0
161932 씨언어 코드 질문점 [13] 질문(121.150) 09.12.11 101 0
161931 수원 생활을 접습니다. [3] 고추장불고기갤로그로 이동합니다. 09.12.11 79 0
161930 직무 면접 통과했으면 자신감 가져도 되나요 [3] ㅁㄴㅇㄹ(121.141) 09.12.11 111 0
161929 Vita500형이 부탁한 어떡해 일기 리스트. [13] 어떡해갤로그로 이동합니다. 09.12.11 5610 0
161928 님들 디씨에서 아이피 전부 확인하는거 어떻게함? [6] 코딩굿(121.168) 09.12.11 418 0
161927 아 파폭왜이러지 [7] MC박뮤탈갤로그로 이동합니다. 09.12.11 101 0
161925 NaCl갤로그로 이동합니다. 09.12.11 40 0
161924 어떡해님 일기 안쓰시면 안되나요? [3] 켁큇갤로그로 이동합니다. 09.12.11 136 0
161923 좀 늦었지만 일영사전횽 문제 풀어봄 [3] SIGSEGV갤로그로 이동합니다. 09.12.11 55 0
161922 내가 볼대 자바스크립트는 참 잘 빠진거 같어. [4] 빈둥빈둥(115.138) 09.12.11 139 0
161918 어떡해 일기 #6 :: 주 단위 학습을 합니다. [6] 어떡해갤로그로 이동합니다. 09.12.11 805 0
161917 방학을 틈타 자바를 공부 하려고 하는데 [10] ㅌㅌ(222.105) 09.12.11 139 0
161916 횽들 진지한 인생상담... [4] 허허벌판갤로그로 이동합니다. 09.12.11 194 0
161914 횽들 정말 나 진지하게 질문하는건데.. [6] 횽들(110.11) 09.12.11 98 0
161913 프로그래밍은 예술이다 -cp- [1] cp(210.218) 09.12.11 117 0
161912 개체지향 개념을 처음에 받아들이기 힘든 이유? [5] 성대아싸(121.137) 09.12.11 149 0
161911 피로토스횽 질문이요. 흐음(121.129) 09.12.11 57 0
161910 읭읭 여자친구랑 함께 공연함 : ) [2] 칭송받는자(222.96) 09.12.11 125 0
161909 MFC 처음하는데 MESSAGE_MAP 에 메세지 콜백함수를... [3] 캐발자갤로그로 이동합니다. 09.12.11 136 0
161907 ITS (지능형 교통 시스템) 분야 [1] 흐음(121.129) 09.12.11 87 0
161905 흠.. 뭔일이 이렇게 많지 ㅠ.ㅠ [2] rntjr갤로그로 이동합니다. 09.12.11 73 0
161903 남자라면 이해할 수 있는 만화 [4] 남자(121.133) 09.12.11 209 0
161901 불여우의 귀환 [1] ∫ 2t dt=t²+c갤로그로 이동합니다. 09.12.11 165 0
161899 그러고보니... [1] JuEUS-U갤로그로 이동합니다. 09.12.11 63 0
161898 횽들 질문 좀요. 급해요. 젭알 algo갤로그로 이동합니다. 09.12.11 39 0
161897 안녕하세여 좆늅입니다. C++ 질문 쩜. [5] 아주아슬갤로그로 이동합니다. 09.12.11 125 0
161895 입사 한달차인데 휴가썼따능 [4] DMW(125.138) 09.12.11 138 0
161894 안녕하세요 c#경력 3일째 씬입입니다. [4] 씬입사원갤로그로 이동합니다. 09.12.11 144 0
161892 야.. 누가 신고하는거야? [1] rntjr갤로그로 이동합니다. 09.12.11 100 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2