|
|
.
2007년 02월 05일
| 고친 과정 |
|---|
| 고침 0.9 | 2004년 6월 30일 12시 |
| | pthread 취소관련 api 추가 | | 고침 0.8 | 2003년 10월 9일 12시 |
| | pthread 시그널 관련 api 추가 |
이 문서는 pthread 레퍼런스 문서이다. pthread 에서 제공하는 모든 함수의 레퍼런스를 제공하고 있지는 않지만, 자주 쓰일만한 대부분의 함수들은 정리되어 있음으로 참고할만한 가치가 있을것이다. 이 문서에 빠진 내용들은 계속 추가해 나갈 예정이다.
주로 쓰레드 생성과 종료에 관련된 가장 기본적인 함수들이다.
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); |
쓰레드 생성을 위해서 사용한다. 첫번째 아규먼트인 thread 는 쓰레드가 성공적으로 생성되었을때 생성된 쓰레드를 식별하기 위해서 사용되는 쓰레드 식별자이다. 두번째 아규먼트인 attr 은 쓰레드 특성을 지정하기 위해서 사용하며, 기본 쓰레드 특성을 이용하고자 할경우에 NULL 을 사용한다. 3번째 아규먼트인 start_routine는 분기시켜서 실행할 쓰레드 함수이며, 4번째 아규먼는인 arg는 쓰레드 함수의 인자이다. 성공적으로 생성될경우 0을 리턴한다. 예제 : pthread_create.cc #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h>
// 쓰레드 함수 void *t_function(void *data) { int id; int i = 0; id = *((int *)data);
while(1) { printf("%d : %d\n", id, i); i++; sleep(1); } }
int main() { pthread_t p_thread[2]; int thr_id; int status; int a = 1; int b = 2;
// 쓰레드 생성 아규먼트로 1 을 넘긴다. thr_id = pthread_create(&p_thread[0], NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); }
// 쓰레드 생성 아규먼트로 2 를 넘긴다. thr_id = pthread_create(&p_thread[1], NULL, t_function, (void *)&b); if (thr_id < 0) { perror("thread create error : "); exit(0); }
// 쓰레드 종료를 기다린다. pthread_join(p_thread[0], (void **)&status); pthread_join(p_thread[1], (void **)&status);
return 0; } |
실행된 쓰레드에 대해서는 pthread_join 등의 함수를 이용해서 쓰레드 종료때까지 기다려줘야 한다. ptherad_join 은 일종의 fork 의 wait 와 비슷하게 작동하며, 쓰레드자원을 해제 시켜준다.
#include <pthread.h> int pthread_join(pthread_t th, void **thread_return); |
첫번째 아규먼트 th는 기다릴(join)할 쓰레드 식별자이며, 두번째 아규먼트 thread_return은 쓰레드의 리턴(return) 값이다. thread_return 이 NULL 이 아닐경우 해다 포인터로 쓰레드 리턴 값을 받아올수 있다. pthread_joinc.c #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h>
// 쓰레드 함수 // 1초를 기다린후 아규먼트^2 을 리턴한다. void *t_function(void *data) { int num = *((int *)data); printf("num %d\n", num); sleep(1); return (void *)(num*num); }
int main() { pthread_t p_thread; int thr_id; int status; int a = 100;
thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); } // 쓰레드 식별자 p_thread 가 종료되길 기다렸다가 // 종료리턴값을 가져온다. pthread_join(p_thread, (void *)&status); printf("thread join : %d\n", status);
return 0; } |
detach 는 "떼어내다" 라는 뜻을 가지며 main 쓰레드에서 pthread_create 를 이용해 생성된 쓰레드를 분리시킨다. 이 함수는 식별번호 th인 쓰레드를 detach 시키는데, detach 되었을경우 해당(detach 된) 쓰레드가 종료될경우 pthread_joinc 을 호출하지 않더라도 즉시 모든 자원이 해제(free) 된다. 여기에서는 pthread_create 호출후 detach 하는 방법을 설명하고 있는데, pthread_create 호출시에 쓰레드가 detach 되도록 할수도 있다. 이에 대한 내용은 pthread_attr_setdetachstate 를 다루면서 설명하도록 하겠다. 예제 : pthread_detach.c #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h>
// 쓰레드 함수 // 1초를 기다린후 아규먼트^2 을 리턴한다. void *t_function(void *data) { char a[100000]; int num = *((int *)data); printf("Thread Start\n"); sleep(5); printf("Thread end\n"); }
int main() { pthread_t p_thread; int thr_id; int status; int a = 100;
printf("Before Thread\n"); thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); } // 식별번호 p_thread 를 가지는 쓰레드를 detach // 시켜준다. pthread_detach(p_thread); pause(); return 0; } |
위의 쏘쓰 코드에서 detach 시켰을때와 그렇지 않았을때의 메모리 상황을 비교해보기 바란다. detatach 를 했을경우 프로세스의 메모리 사용율과 detache 를 주석 처리했을경우의 메모리 사용율의 변화를 서로 비교해보면 되는데, detach 를 사용하지 않았을경우 t_function 이 종료가 되더라도 자원이 해제되지 않음을 볼수 있을것이다. 테스트는 간단한 스크립트를 이용하도록 한다. [root@localhost test]# while [ 1 ]; do ps -aux | grep pthread | grep -v grep | grep -v vim; sleep 1; done root 2668 0.0 0.1 1436 292 pts/8 S 18:37 0:00 ./pthread_detach root 2668 0.0 0.1 1436 292 pts/8 S 18:37 0:00 ./pthread_detach |
위의 ps 내용에서 5번째 필드의 변화를 확인하면 된다.
pthread_exit 는 현재 실행중인 쓰레드를 종료시키고자 할때 사용한다. 만약 pthread_cleanup_push 가 정의되어 있다면, pthread_exit 가 호출될경우 cleanup handler 가 호출된다. 보통 이 cleanup handler 은 메모리를 정리하는 등의 일을 하게 된다. 예제 : pthread_exit.c #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h>
// 쓰레드 함수 // 1초를 기다린후 아규먼트^2 을 리턴한다. void *t_function(void *data) { int num = *((int *)data); int i = 0; while(1) { if (i == 3) pthread_exit(0); printf("loop %d\n", i); i++; sleep(1); } }
int main() { pthread_t p_thread; int thr_id; int status; int a = 100;
thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); } pthread_join(p_thread, (void **)&status); return 0; } |
void pthrad_cleanup_push(void (*routine) (void *), void *arg); |
이것은 cleanup handlers 를 인스톨하기 위해서 사용된다. pthread_exit(3) 가 호출되어서 쓰레드가 종료될때 pthread_cleanup_push 에 의해서 인스톨된 함수가 호출된다. routine이 쓰레드가 종료될때 호출되는 함수이다. arg는 아규먼트이다. cleanup handlers 는 주로 자원을 되돌려주거나, mutex 잠금등의 해제를 위한 용도로 사용된다. 만약 mutex 영역에서 pthread_exit 가 호출되어 버릴경우 다른쓰레드에서 영원히 block 될수 있기 때문이다. 또한 malloc 으로 할당받은 메모리, 열린 파일지정자를 닫기 위해서도 사용한다. 예제 : pthread_cleanup.c #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h>
// 쓰레드 함수 // 1초를 기다린후 아규먼트^2 을 리턴한다. //
char *mydata; void cleanup(void *); void *t_function(void *data) { int num = *((int *)data); int i = 0; int a = 1; // cleanup handler 로 cleanup 함수를 // 지정한다. pthread_cleanup_push(cleanup, (void *)&a); mydata = (char *)malloc(1000); while(1) { if (i == 3) { // pthread_exit 가 호출되면서 // cleanup 을 호출하게 된다. pthread_exit(0); return 1; } printf("loop %d\n", i); i++; sleep(1); } pthread_cleanup_pop(0); }
int main() { pthread_t p_thread; int thr_id; int status; int a = 100;
thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); } pthread_join(p_thread, (void **)&status); printf("Join finish\n"); }
// cleanup handler void cleanup(void *myarg) { printf("thread is clean up\n"); printf("resource free\n"); free(mydata); } |
pthread_cleanup_push 와 함께 사용되며, install 된 cleanup handler 을 제거하기 위해서 사용된다. 만약 execute 가 0 이라면, pthread_cleanup_push 에 의해 인스톨된 cleanup handler 를 (실행시키지 않고)삭제만 시킨다. 0 이 아닌 숫자라면 cleanup handler 을 실행시키고 삭제 된다. 사용예제는 2.5절을 참고하라. 그리고 pthread_cleanup_push 와 pthread_cleanup_pop 은 반드시 같은 함수내의 같은 레벨의 블럭에서 한쌍으로 사용해야 한다.
pthread_self를 호출하는 현재 쓰래드의 쓰레드식별자를 되돌려준다. 예제 : pthread_self.c #include <pthread.h> #include <stdio.h>
void *func(void *a) { pthread_t id; id = pthread_self(); printf("->%d\n", id); }
int main(int argc, char **argv) { pthread_t p_thread; pthread_create(&p_thread, NULL, func, (void *)NULL); printf("%d\n", p_thread); pthread_create(&p_thread, NULL, func, (void *)NULL); printf("%d\n", p_thread);
return 1; } |
쓰레드 동기화와 관련된 함수들이다.
int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutex_attr *attr); |
mutex 는 여러개의 쓰레드가 공유하는 데이타를 보호하기 위해서 사용되는 도구로써, 보호하고자 하는 데이타를 다루는 코드영역을 단지 한번에 하나의 쓰레드만 실행가능 하도록 하는 방법으로 공유되는 데이타를 보호한다. 이러한 코드영역(하나의 쓰레드만 점유가능한)을 critical section 이라고 하며, mutex 관련 API 를 이용해서 관리할수 있다. pthread_mutex_init 는 mutex 객체를 초기화 시키기 위해서 사용한다. 첫번째 인자로 주어지는 mutex 객체 mutex를 초기화시키며, 두번째 인자인 attr 를 이용해서 mutex 특성을 변경할수 있다. 기본 mutex 특성을 이용하기 원한다면 NULL 을 사용하면 된다. mutex 특성(종류) 에는 "fast", "recurisev", "error checking" 의 종류가 있으며, 기본으로 "fast" 가 사용된다. // 뮤텍스 객체 선언 pthread_mutex_t mutex_lock; ... void *t_function() { pthread_mutex_lock(&mutex_lock); // critical section pthread_mutex_unlock(&mutex_lock); } int main() { pthread_t p_thread; int state; // 뮤텍스 객체 초기화, 기본 특성으로 초기화 했음 pthread_mutex_init(&mutex_lock, NULL); pthread_create(&p_thread, NULL, t_function, (void *)&a); ... pthread_joinc(&p_thread, (void **)&status); } |
인자로 주어진 뮤텍스 객체 mutex 를 제거하기 위해서 사용된다. mutex 는 pthread_mutex_init()함수를 이용해서 생성된 뮤텍스 객체이다. pthread_mutex_destory 를 이용해서 제대로 mutex 를 삭제하려면 이 mutex 는 반드시 unlock 상태이여야 한다.
pthread_mutex_lock 는 critcal section 에 들어가기 위해서 mutex lock 을 요청한다. 만약 이미 다른 쓰레드에서 mutex lock 를 얻어서 사용하고 있다면 다른 쓰레드에서 mutex lock(뮤텍스 잠금) 을 해제할때까지(사용할수 있을때까지) 블럭 된다. 만약 다른 어떤 쓰레드에서도 mutex lock 을 사용하고 있지 않다면, 즉시 mutex lock 을 얻을수 있게 되고 critcal section 에 진입하게 된다. critcal section 에서의 모든 작업을 마쳐서 사용하고 있는 mutex lock 이 더이상 필요 없다면 pthread_mutex_unlock 를 호출해서 mtuex lock 를 되돌려준다.
critical section 에서의 모든 작업을 마치고 mutex lock 을 돌려주기 위해서 사용한다. pthread_mutex_unlock 를 이용해서 mutex lock 를 되돌려주면 다른 쓰레드에서 mutex lock 를 얻을수 있는 상태가 된다.
int pthread_cond_init(pthread_cond_t *cond, const pthread_cond_attr *attr); | pthread_cond_init는 조견변수 (condition variable) cond를 초기화하기 위해서 사용한다. attr 를 이용해서 조건변수의 특성을 변경할수 있으며, NULL 을 줄경우 기본특성으로 초기화된다. 조건변수 cond는 상수 PTHREAD_COND_INITIALIZER 을 이용해서도 초기화 할수 있다. 즉 다음과 같은 2가지 초기화 방법이 존재한다.
조건변수 cond에 시그날을 보낸다. 시그날을 보낼경우 cond에서 기다리는(wait) 쓰레드가 있다면 쓰레드를 깨우게 된다(봉쇄가 풀림). 만약 조건변수 cond를 기다리는 쓰레드가 없다면, 아무런 일도 일어나지 않게되며, 여러개의 쓰레드가 기다리고 있다면 그중 하나의 쓰레드에게만 전달된다. 이때 어떤 쓰레드에게 신호가 전달될지는 알수 없다.
조건변수 cond에서 기다리는(wait) 모든 쓰레드에게 신호를 보내서, 깨운다는 점을 제외하고는 pthread_cond_signal과 동일하게 작동한다.
조건변수 cond를 통해서 신호가 전달될때까지 블럭된다. 만약 신호가 전달되지 않는다면 영원히 블럭될수도 있다. pthread_cond_wait는 블럭되기 전에 mutex 잠금을 자동으로 되돌려준다.
int pthread_cond_timedwait(pthread_cont_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); |
조건변수 cond를 통해서 신호가 전달될때까지 블럭되며 자동으로 mutex을 돌려주는 점에서는 pthread_cond_wait와 동일하다. 그러나 시간체크가 가능해서 abstime시간동안 신호가 도착하지 않는다면 error 를 발생하면서 리턴한다. 이때 리턴값은 ETIMEDOUT 이다. errno 가 세팅되는게 아닌, 리턴값으로 에러가 넘어오는것에 주의해야 한다. 또한 pthread_cond_timedwait함수는 다른 signal 에 의해서 interrupted 될수 있으며 이때 EINTR 을 리턴한다. 이 함수를 쓸때는 interrupted 상황에 대한 처리를 해주어야 한다.
pthread_cond_init를 통해서 생성한 조건변수 cond에 대한 자원을 해제한다. destroy 함수를 호출하기 전에 어떤 쓰레드도 cond에서의 시그널을 기다리지 않는걸 확인해야 한다. 만약 cond 시그널을 기다리는 쓰레드가 존재한다면 이 함수는 실패하고 EBUSY 를 리턴한다.
이번장에서 설명한 쓰레드 동기화 관련 함수의 이해를 돕기 위해서 간단한 예제를 준비했다. 설명은 주석으로 대신한다. 예제 : pthrad_sync_api.c #include <pthread.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <vector> #include <iostream>
using namespace std;
void *ping(void *); void *pong(void *);
pthread_mutex_t sync_mutex; pthread_cond_t sync_cond;
pthread_mutex_t gmutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t gcond = PTHREAD_COND_INITIALIZER;
int main() { vector<void *(*)(void *)> thread_list; vector<pthread_t> tident(10); int thresult; int status; int i;
pthread_mutex_init(&sync_mutex, NULL); pthread_cond_init(&sync_cond, NULL);
thread_list.push_back(pong); thread_list.push_back(ping);
for(i = 0; i < thread_list.size(); i++ ) { pthread_mutex_lock(&sync_mutex); if (pthread_create(&tident[i], NULL, thread_list[i], (void *)NULL) <0) { perror("error:"); exit(0); } pthread_cond_wait(&sync_cond, &sync_mutex); pthread_mutex_unlock(&sync_mutex); } for (i = 0; i < tident.size(); i++) { pthread_join(tident[i], (void **)&status); } }
void *ping(void *data) { int i=0; pthread_mutex_lock(&sync_mutex); pthread_cond_signal(&sync_cond); pthread_mutex_unlock(&sync_mutex); while(1) { pthread_mutex_lock(&gmutex); printf("%d : ping\n", i); pthread_cond_signal(&gcond); pthread_cond_wait(&gcond, &gmutex); pthread_mutex_unlock(&gmutex); usleep(random()%100); i++; } }
void *pong(void *data) { int i = 0; pthread_mutex_lock(&sync_mutex); sleep(1); pthread_cond_signal(&sync_cond); pthread_mutex_unlock(&sync_mutex); while(1) { pthread_mutex_lock(&gmutex); pthread_cond_wait(&gcond, &gmutex); printf("%d : pong\n", i); pthread_cond_signal(&gcond); pthread_mutex_unlock(&gmutex); i++; } } | 위의 예제는 ping&pong 프로그램으로 ping 쓰레드와 pong 쓰레드가 각각 번갈아가면서 "ping", "pong" 을 날리는 프로그램이다. 2개의 영역에 걸쳐서 크리티컬섹션이 지정되어 있으며 각 크리티컬섹션안에는 쓰레드 동기화를 위해서 ptread_cond_signal 이 쓰여지고 있다. 위의 코드는 기본적으로 pong 쓰레드가 먼저 시그널을 대기하고 있다가 그 후 ping 쓰레드가 진입해서 "ping"을 날리고 시그널을 발생시키면 "pong" 메시지를 발생시키도록 되어 있다. 그렇다면 while 문에 있는 크리티컬 섹션에 반드시 pong 쓰레드가 먼저 진입할수 있도록 만들어줘야 할것이다. 그래서 위의 코드에서는 pong 쓰레드를 먼저 생성시켰다. 그러나 이것만으로는 충분하지 않다. 예를들어서 pong 쓰레드에서 크리티컬섹션에 들어가기 위해서 어떤 부가적인 작업이 있다고 했을때(메모리초기화, 기타 다른 함수 호출과 같은, 위에서는 sleep 으로 대신했다), 우리가 의도했던 바와는 다르게 ping 가 먼저 크리티컬섹션에 진입할수도 있다. 이럴경우 2개의 쓰레드는 교착상태에 빠지게 된다. ping 쓰레드가 크리티컬섹션에 먼저 진입했을경우 ping 쓰레드는 "ping" 출력시키고 시그널을 발생시킬 것이고 pong 쓰레드가 "pong"를 출력시키고 시그널을 발생시킬때까지 시그널대기 하게 된다. ping 쓰레드가 시그널대기 하게 되면, 크리티컬섹션에 대한 뮤텍스 잠금이 해제됨으로 뒤늦게 크리티컬섹셔네 진입을 시도하던 pong 가 크리티컬섹션에 진입하고 ping 쓰레드에서부터 신호가 있는지 기다리게 될것이다. 그러나 ping 쓰레드는 이미 신호를 날려버렸음으로, pong 쓰레드는 결코 도착하지 않을 신호를 기다리며 영원히 시그널대기 하게 될것이다. 이런식으로 2개의 쓰레드는 교착상태에 빠져 버린다. 이 문제는 쓰레드간 동기화를 이용해서 해결할수 있으며, 위 코드에서는 mutex 잠금과, 조건변수를 이용해서 해결하고 있다. 물론 쓰레드간 동기화를 위해서 사용할수 있는 원시?적인 방법으로 sleep 나 usleep 같은 함수를 호출하는 방법도 있긴 하지만, ping 쓰레드에서 크리티컬 섹션에 진입하기전 1초 정도 sleep 을 주는 식으로 사용가능하지만 추천할만하진 않다. (간혹 간단하게 사용할수는 으며, 가장 확실한 방법을 제공해 주기도 한다)
pthread_attr_init는 thread attribute 객체인 attr을 디폴트 값으로 초기화 시킨다. 성공할경우 0을 돌려주고 실패할경우 -1 을 되돌려준다.
pthread_attr_init에 의해 생성된 thread attribute 객체인 attr을 제거한다. 제거된 attr 을 다시 사용하기 위해서는 pthread_attr_init를 이용해서 다시 초기화 해주어야 한다.
int pthread_attr_getscope(const pthread_attr_t *attr, int *scope); |
쓰레드가 어떤 영역(scope)에서 다루어지고 있는지를 얻어오기 위해서 사용된다. PTHREAD_SCOPE_SYSTEM과 PTHREAD_SCOPE_PROCESS 의 2가지 영역중에 선택할수 있다. SYSTEM 영역 쓰레드는 user 모드 쓰레드라고 불리우며, PROCESS 쓰레드는 커널모드 쓰레드라고 불리운다. 리눅스의 경우 유저모드 쓰레드인데, 즉 커널에서 쓰레드를 스케쥴링하는 방식이 아닌 쓰레드 라이브러리를 통해서 쓰레드를 스케쥴링 하는 방식을 사용한다. #include <pthread.h> #include <stdlib.h> #include <stdio.h>
int main() { pthread_attr_t pattr; int scope;
pthread_attr_init(&pattr);
pthread_attr_getscope(&pattr, &scope); if (scope == PTHREAD_SCOPE_SYSTEM) { printf("user mode thread\n"); } else if (scope == PTHREAD_SCOPE_PROCESS) { printf("Kernel mode thread\n"); }
return 1; } |
위 프로그램을 컴파일한후 Linux 에서 실행시키면 "user mode thread"를 출력하고 솔라리스 상에서 실행시키면 "kernel mode thread"를 출력한다.
쓰레드가 어떤 영역(scope)에서 작동하게 할것인지 결정하기 위해서 사용한다. 리눅스의 경우 Kernel mode 쓰레드를 지원하지 않음으로 오직 PTHREAD_SCOPE_SYSTEM 만을 선택할수 있다. 반면 솔라리스는 유저모드와 커널모드중 선택이 가능하다. pthread_attr_setscope.c #include <pthread.h> #include <stdlib.h> #include <stdio.h>
int main() { pthread_attr_t pattr; int scope;
pthread_attr_init(&pattr);
pthread_attr_setscope(&pattr, PTHREAD_SCOPE_PROCESS); pthread_attr_getscope(&pattr, &scope); if (scope == PTHREAD_SCOPE_SYSTEM) { printf("user mode thread\n"); } else if (scope == PTHREAD_SCOPE_PROCESS) { printf("Kernel mode thread\n"); }
return 1; } |
위코드에서 쓰레드가 커널 모드에서 작동하도록 지정을 했다. 리눅스에서 실행시킬경우에는 비록 커널모드로 지정을 했다고 하더라도 유저모드 쓰레드로 작동하게 된다. 솔라리스의 경우에는 setscope 로 지정한대로 커널모드에서 작동하게 된다.
int pthread_attr_getdetachstate(pthread_attr_t *attr, int detachstate); |
쓰레드가 join 가능한 상태(PTHREAD_CREATE_JOINABLE) 인지 detached 상태인지 (PTHREAD_CREATE_DETACHED) 인지를 알아낸다. 알아낸 값은 아규먼트 detachstate 에 저장된다. 기본은 PTHREAD_CREATE_JOINABLE 이며, pthread_detach를 이용해서 생성된 쓰레드를 detach 상태로 만들었을경우 또는 pthread_attr_setdetachstate함수를 이용해서 쓰레드를 detache 상태로 변경시켰을경우 PTHREAD_CREATE_DETACHED 상태가 된다. 예제 : pthread_attr_getdetachstate.c #include <pthread.h> #include <stdlib.h> #include <stdio.h>
pthread_attr_t attr; void *test(void *a) { int policy; printf("Thread Create\n"); pthread_attr_getdetachstate(&attr, &policy); if (policy == PTHREAD_CREATE_JOINABLE) { printf ("Join able\n"); } else if (policy == PTHREAD_CREATE_DETACHED) { printf ("Detache\n"); } } int main() { int status; pthread_t p_thread; pthread_attr_init(&attr); if (pthread_create(&p_thread, NULL, test, (void *)NULL) < 0) { exit(0); }
pthread_join(p_thread, (void **)&status); } |
위의 프로그램을 실행시키면 분명 "Join able"를 출력할것이다.
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); |
쓰레드의 상태를 PTHREAD_CREATE_JOINABLE 혹은 PTHREAD_CREATE_DETACHED 상태로 변경시키기 위해서 사용된다. 아래와 같은 방법으로 사용하면 된다.
쓰레드간 프로세스와 쓰레드간 시그널 전달관련 API들이다. 자세한 내용은 쓰레드와 시그널을 참고하기 바란다.
#include <pthread.h> #include <signal.h>
int pthread_sigmask(int how, const sigset_t *newmask, sigset_t *oldmask); |
쓰레드에서 시그널은 서로 공유된다. 그런이유로 만약 프로세스에 시그널이 전달되면 프로세스가 생성된 모든 쓰레드로 시그널이 전달된다. 그러나 특정 쓰레드만 시그널을 받도록 하고 싶을 때가 있을 것이다. 이경우 이 함수를 이용하면 된다.
#include <pthread.h> #include <signal.h>
int pthread_kill(pthread_t thread, int signo); |
쓰레드 식별번호 thread로 signo 번호의 시그널을 전달한다.
#include <pthread.h> #include >signal.h>
int sigwait(const sigset_t *set, int *sig); |
시그널 전달을 동기적으로 기다린다. 참고 문서 - Pthread 뮤텍스와 조건변수
- pthread 1
- pthread 모델
- pthread 3
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
# by yundream | 2007/02/05 11:30 | 트랙백(264) | 덧글(0)
|
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : Free asian porn.
Free asian lesbian porn. Free asian porn movies....more
제목 : Phentermine.
Discount phentermine. Buy phentermine online. Phentermine 37.5. Phentermine free shipping. Buy phentermine mg. Compare phentermine price. Phentermine diet pill....more
제목 : Buy cheap phentermine now sa..
Cheap phentermine. Buy cheap phentermine onli ne. Cheap 30 mg phentermine pay cash on delivery. Buy phentermine online without prescription cheap. Cheap phentermine c o d payment....more
제목 : Phentermine cod.
Discount phentermine. Phentermine no prescription. Phentermine florida. Phentermine cash on delivery....more
제목 : Phentermine mg.
Phentermine online. Phentermine diet pills. Mg buy phentermine. Danger of phentermine. Phentermine review. Phentermine cod....more
제목 : Phentermine.
Phentermine online. Phentermine. Phentermine no prescription. Phentermine mg. Lowest price for phentermine. Cheapest phentermine. Phentermine cod....more
제목 : Phentermine.
Xenical hgh phentermine quit smoking detox....more
제목 : Xenical hgh phentermine quit..
Cheap 37 5 phentermine. Phentermine. Xenical hgh phentermine quit smoking detox. Order phentermine uk....more
제목 : Phentermine 37 5mg.
Buy phentermine online. Buy phentermine on line. Keyword phentermine....more
제목 : Phentermine.
Phentermine. Get phentermine. Phentermine cash on delivery....more
제목 : Adipex phentermine vs.
Phentermine diet pills. Phentermine. Phentermine on line. Phentermine cod....more
제목 : Phentermine.
Phentermine online purchase. Get phentermine....more
제목 : Phentermine blue.
Buy phentermine. Discount phentermine. Phentermine. Order phentermine online. Picture of phentermine....more
제목 : Phentermine 37.5mg.
Phentermine....more
제목 : Cheap phentermine.
Phentermine. Buy phentermine online. Phentermine yellow. Phentermine on line. Phentermine for sale....more
제목 : Phentermine diet pills.
Phentermine. Free phentermine....more
제목 : Synthroid side effects.
Side effects of synthroid. Synthroid reduced effectiveness. Synthroid....more
제목 : Acomplia.
Buy acomplia....more
제목 : Does propecia thin hair out ..
Nzlive com propecia rally new zealand. Propecia. Does propecia work. Propecia finasteride. Generic propecia....more
제목 : Clomid.
Clomid club clomid club. Clomid price. Clomid luteal phase. Clomid. How much does clomid cost. Clomid success rates....more
제목 : Propecia.
About propecia. Propecia. Pill propecia. Propecia pill. Propecia online uk. Propecia online pharmacy. Buy propecia buy cheap propecia online. About propecia online information uk....more
제목 : Celexa drug.
Celexa lexapro. Celexa and welbutrin combination. Celexa....more
제목 : Zithromax.
Zithromax for eye infections. Zithromax. Zithromax azithromycin order....more
제목 : Buy acomplia.
Buy acomplia. Acomplia. Obese online pharmacy getpharma acomplia. Acomplia rimonabant. Acomplia canada....more
제목 : Buy acomplia.
Acomplia. Acomplia mexico. Google alert results for acomplia. Acomplia rimonabant....more
제목 : 7767 celebrex.
Replacement for celebrex. Celebrex lawyers dallas. Celebrex. Purchase generic celebrex....more
제목 : Side effects doxycycline.
Doxycycline. Doxycycline patient information....more
제목 : Paxil.
Paxil. Paxil and weight gain....more
제목 : Topamax off label uses.
Topamax. What is topamax. Topamax side effects. Migraine topamax. Topamax weight loss....more
제목 : Nexium.
Nexium side effects. Nexium....more
제목 : 1 day late clonazepam darvoc..
Clonazepam. Clonazepam side effects....more
제목 : Clonazepam neuropathy.
Clonazepam. Clonazepam maoi. Clonazepam how supplied....more
제목 : Russian girls women from rus..
Dating married women. Russian women russian brides dating. Dating mature women. Married women dating. Older women dating younger men associated content. Why are black women dating white men....more
제목 : Play free online sim dating ..
Online dating sim flash games....more
제목 : Kustomer ireland dating.
Women dating ireland. Kustomer ireland dating....more
제목 : Drug called cialis.
Cialis online. Levitra cialis viagra comparison. Cheap cialis. Cialis dosage. Cialis....more
제목 : Phentermine 37.5.
Phentermine 37 5mg. Order online phentermine 37.5mg. Phentermine 37.5 180 doses no prescription....more
제목 : Vicodin withdrawal.
Vicodin....more
제목 : Phentermine ionamin.
Low cost phentermine. Phentermine 37 5mg. Phentermine. Adipex phentermine vs. Mg buy phentermine. Buy phentermine online. Phentermine weight loss....more
제목 : Home loan lender.
Rhode island home equity loan. Business loan....more
제목 : Phentermine.
Phentermine online. Phentermine. Phentermine without prescription. Phentermine weight loss....more
제목 : Soma cannabis.
Soma cube. Soma intimates. Soma without rx. Effects of soma. Soma seeds. Soma....more
제목 : Ephedrine weightloss drops.
Ephedrine....more
제목 : Ultram addiction.
Ultram. Ultram online. Ultram abuse. Order ultram. Ultram ortho mcneil....more
제목 : Cheap air tran ticket.
Cheap air ticket to india. Cheap air ticket from yellowpages travel. Cheap air flights cheap discounte airline ticket. Cheap air ticket gt gt. Cheap air ticket. Air airline cheap cheap flight ticket....more
제목 : Order valium.
Order valium. Order valium online. Order valium no prescription....more
제목 : Cymbalta.
Cymbalta and weight gain. Recent news on cymbalta. Cymbalta side effects. Cymbalta....more
제목 : Buy tramadol online best pri..
Activado agcode buy tramadol icqwebmail info. Buy tramadol. Tramadol great buy....more
제목 : Can doxycycline be used for ..
Doxycycline hyclate. Doxycycline side effects....more
제목 : Vicodin m357.
Vicodin online no prescription. Buy vicodin without prescription. No prescription vicodin. Vicodin user message board. Vicodin. Vicodin without prescription....more
제목 : Fioricet.
Fioricet. Fioricet c.o.d.. Cheapest fioricet. Fioricet long term use damage....more
제목 : Buy diazepam news.
Diazepam drug. Diazepam prescription pharmacy online. Order diazepam with master card. Diazepam with mastercard. Ifa fonal diazepam. Diazepam valium. Diazepam....more
제목 : Lorcet vicodin online.
Vicodin. Liquid form of vicodin. Vicodin detox. Vicodin with no membership fees. Buy vicodin without script. Vicodin no rx....more
제목 : Ultram.
Ultram. Ultram extended release. Ultram tramadol....more
제목 : Lasix buy.
Lasix furosemide. What is the effect of the medicine lasix. Lasix....more
제목 : Diazepam wikipedia the free ..
Side effects of diazepam. Buy diazepam. Diazepam benefits. Diazepam effects patient information. Diazepam usa. Diazepam....more
제목 : Rise against soma tickets.
Cheapest soma....more
제목 : Valtrex.
Valtrex. How many times a day should i take valtrex. Valtrex online. Side effects of valtrex. Valtrex and drug saftey....more
제목 : Fentanyl vs oxycodone.
Oxycodone teva. Oxycodone....more
제목 : Lasix eye surgery.
Buy lasix online. Cheap lasix. Lasix 12.5. Lasix....more
제목 : Propecia.
Propecia. Propecia side effects. Propecia online uk. Buy propecia buy cheap propecia online....more
제목 : Can you use low dose naltrex..
Ultram. Buy ultram cheapest site. Ultram er addicting....more
제목 : Oxycodone.
Buy oxycodone without prescription. Oxycodone....more
제목 : Ultram er.
Ultram 20 mg. Ultram ortho mcneil....more
제목 : Lasix.
What does lasix do. Nursing article on lasix. Dr rosholt lasix canton. What is the effect of the medicine lasix. Results of lasix in race horses. Lasix. Pros and cons of lasix eye surgery. What is lasix....more
제목 : Lexapro.
Lexapro vs. celexa. Lexapro weight gain. Lexapro abuse. Lexapro. Side effects of drug lexapro. Lexapro medicine. Lexapro generic....more
제목 : Vicodin.
Buy vicodin without prescription. Vicodin. Signs of vicodin addictio. Dangers of vicodin. No prescription vicodin. Buying cod vicodin. Next day delivery vicodin....more
제목 : Diazepam dmt.
Diazepam....more
제목 : Lexapro and alcohol.
Lexapro and pregnancy. Lexapro safety. Lexapro. Lexapro dosage. Lexapro antidepressant....more
제목 : Ephedra near herb.
Connecticut ephedra attorneys. Ephedra 30mg. Liquid ephedra. Ephedra cla products. Ephedra for sports....more
제목 : Generic fioricet online.
Online pharmacies that offer fioricet. Online fioricet w codeine medical consultation. Fioricet online....more
제목 : Hydrocodone apap 5 500.
Hydrocodone. Hydrocodone guaifenesin....more
제목 : Natural herb reverse impoten..
Propecia. Propecia studies....more
제목 : Buy fiorinal with codeine.
Apap codeine. Buy 222 codeine. Codeine facts. Codeine dose....more
제목 : Buy generic xanax information.
Chemical compounds of xanax. Xanax no prescription overnight delivery. Xanax. Xanax side effects....more
제목 : Ephedrine.
Ephedrine ephedra. Vasopro ephedrine. Dangers of ephedrine. Real ephedrine. Ephedrine hcl michigan....more
제목 : Meridia coupon.
Meridia forum. Ptsd and meridia research. Meridia....more
제목 : Cymbalta weight gain.
Cymbalta withdrawal. Cymbalta....more
제목 : Soma.
Buy soma tablets. Effects of soma. Soma....more
제목 : Codeine online.
Codeine online. Apap codeine. Metabolism of codeine in urine. Codeine dose. Somas with carisoprodol doese t contain codeine. Side effects of codeine....more
제목 : Taking viagra with cialis.
Asprin and cialis. Cialis....more
제목 : Xanax.
How long does xanax stay in your system. Order xanax online. Buy xanax without prescription in usa. Pharmacy order generic xanax. Xanax....more
제목 : Extract codeine.
Hard to annunciate fioricet codeine. Codeine 3. Cheap codeine and foreign pharmacies. Codeine....more
제목 : Ultram abuse.
Ultram. Ultram medicine ultram. Drug ultram. Buy ultram....more
제목 : Oxycodone.
What is oxycodone. When someone sniff s oxycodone. Oxycodone extraction iv. Delirium elderly oxycodone. Oxycodone....more
제목 : Buy viagra.
Buy viagra online. Buy cheap viagra online uk. Buy viagra....more
제목 : Can percocet cause nightmares.
Percocet addiction. Bioavailability of percocet....more
제목 : Cheap xanax online buy cheap..
Buy xanax. Generic xanax 2 mg no prescription. Xanax....more
제목 : Soma online sales.
Soma online sales. Order soma online without prescription. Buy soma online. Buy soma watson brand online 150 tablets. Soma online....more
제목 : Ciprofloxacin and gonorrhoea.
Ciprofloxacin....more
제목 : Vicodin.
Vicodin. Vicodin side effects. Dangers of vicodin. Vicodin withdrawal. Vicodin addiction. Quiting vicodin information....more
제목 : Doxycycline usp.
Doxycycline 100 mg. Doxycycline....more
제목 : Cytomel plus synthroid ratios.
Synthroid side effects. Side effects of synthroid. Synthroid plus cytomel. Synthroid. Buy synthroid online....more
제목 : Generic cialis.
Generic cialis. Cialis lawyers. Viagra and cialis....more
제목 : Ambien sleeping pill.
Does ambien cause fetal birth defect. Ambien. Ambien overdose. Ambien addiction. Ambien cr addiction. Ambien safety profile. Discount ambien....more
제목 : Soma.
Soma drug test. Soma compound. Soma online sales. Soma. Soma online....more
제목 : Adderall tweaked.
Adderall idiopathic edema. Adderall coupon. Adderall xr. Adderall abuse. Buy adderall or dexadrine no prescription....more
제목 : Vicodin online.
Vicodin. Vicodin addiction. Buy vicodin online. Buy vicodin without script. No prescription needed vicodin....more
제목 : Drug soma cause any sexual s..
Soma cube puzzle. Soma online sales. Soma to florida. Soma. Buy soma watson brand online 150 tablets....more
제목 : Fioricet.
Fioricet. How long does fioricet show up in blood work. Fioricet dosage....more
제목 : Cialis best price buy online.
Buy cialis....more
제목 : Ultram vs. tramadol.
Tramadol ultram....more
제목 : Uname Equivalent Windows
xagEKt1 | Bookmarks Dissappearing And Solution ...more
제목 : Tramadol no prescription.
Tramadol side effects....more
제목 : Lipitor prescription side ef..
Lipitor and zeita. Lipitor pricing. Lipitor. Lipitor muscle nerve pain....more
제목 : Lipitor side effects.
Lipitor and zeita. Lipitor and pvcs. Side effects from lipitor. Lipitor grapefruit. Lipitor. Lipitor side effects....more
제목 : Problems lubricating even wi..
Cialis generic. Cialis dosage. Cialis....more
제목 : Women-dog sex.
Dog sex stories. Free dog sex pictures. Dog sex. Free dog sex videos. Dog style sex. Dog women sex. Sex with dog. Dog sex pics....more
제목 : Vicodin withdrawls.
What does vicodin look like. Vicodin online. Vicodin back pain. Vicodin at overseas pharmacies. Purchase vicodin online....more
제목 : Soma online sales.
Effects of soma. Soma next day delievery. Soma online sales. Soma. Buy soma watson brand online 150 tablets. Watson soma. Soma online. Soma and addiction....more
제목 : Valium.
Interresults valium. Valium drug information....more
제목 : Soma.
Soma intimates stores. Soma....more
제목 : Lipitor 20 mg.
Does lipitor have a generic drug....more
제목 : Cialis.
Cialis best price buy online. 3gp young size bbs -cialis -gay. Cialis....more
제목 : Adipex without a prescription.
Adipex hurt me. Adipex 37.5 fedex overnight. Adipex. Adipex no prescription cod. Adipex large order. Blood glucose and adipex. Adipex phentermine. Search results adipex for sale....more
제목 : Effects of vicodin.
Vicodin....more
제목 : Adipex.
Buy adipex now. Adipex results. Adipex. Adipex without prescription....more
제목 : Adipex p phentermine ecureme..
Rx adipex. Online pharmacy adipex. Adipex generic form phentermine lowest prices. Generic adipex. Adipex p phentermine ecureme com. Phent ermine adipex. Adipex phentermine....more
제목 : Adipex hurt me.
Adipex for sale. Phentermine adipex. Adipex testimonials. Adipex. Adipex no prescription. Where buy cheap adipex....more
제목 : Adipex.
Adipex phentermine vs al bawaba blogs. Adipex. Adipex p. Adipex no prescription....more
제목 : Adipex no prescription.
Adipex phentermine vs. Adipex 37.5 fedex overnight. Adipex reviews. Adipex. Buy cheap adipex. Adipex phentermine....more
제목 : Adipex dangers.
Adipex capsules no prescription. Adipex phentermine cash on delivery phentermine mg. Adipex....more
제목 : Buy soma online.
Fatal dose of soma carisopradol. Soma to florida. Soma. Soma online. Border bangers soma....more
제목 : Abilify sexual dysfunction.
Abilify....more
제목 : Side affects of abilify.
Abilify. Abilify and adhd. Abilify and weight gain. Pros and cons of abilify. Abilify causing mouth sores....more
제목 : cost for cleaning service
kTbKat0 | generic drugs cost ...more
제목 : code lookup neopets
mBesnt0 | cheats eye of the storm neopets ...more
제목 : habits tres
6uQ4yt0 | grooming habits of the golden eagle ...more
제목 : arabic biryani spices
DzgAit0 | download arabic language pack from microsoft ...more
제목 : ampd versus virgin
nZaPit0 | neoclassicism versus romanticism ...more
제목 : lesbian horney
jwlVxt0 | lesbian horney ...more
제목 : Ciprofloxacin for dogs.
Ciprofloxacin taran. Ciprofloxacin....more
제목 : Allegra.
Allegra. Allegra motor homes....more
제목 : Klonopin.
Klonopin withdrawl symptoms. Fedex klonopin with precription. Xanax with klonopin. Klonopin....more
제목 : Buy accomplia online.
Cheap accomplia online. Buy accomplia. Accomplia....more
제목 : Doxycycline side effects.
Doxycycline formula. Doxycycline uses. Doxycycline eye bacteria. Doxycycline....more
제목 : Cialis and levitra.
Cialis levitra viagra. Buy sublingual levitra online. Levitra samples. Levitra....more
제목 : Lexapro.
Lexapro. Interactions between ephedrine and lexapro. Lexapro medication adverse effects....more
제목 : Adderall.
Side effects of adderall xr. Adderall overdose. Adderall....more
제목 : Xanax overdose.
Xanax online without prescription. Xanax. Buy xanax online without a prescription....more
제목 : Hydrocodone.
Hydrocodone. Hydrocodone side effects of withdrawal. Buy hydrocodone. Hydrocodone for sale....more
제목 : Danger of phentermine.
Phentermine....more
제목 : Oxycontin injury attorney oh..
Oxycontin drug abuse. Oxycontin online. Oxycontin. Georgia oxycontin attorneys. Jeff silverman oxycontin. Buy oxycontin. Snort oxycontin....more
제목 : Sildenafil citrate.
Sildenafil. Sildenafil citrate tablet. Baldness treatment sildenafil citrate....more
제목 : Lexapro and side effects.
Lexapro weight gain. Lexapro. Lexapro without prescription. Lexapro side effects. Provigil wellbutrin lexapro....more
제목 : Effects of long term percoce..
Percocet....more
제목 : Fioricet.
Webresults fioricet. Fioricet. Fioricet and blood work. Fioricet c.o.d.....more
제목 : Phentermine.
Buy phentermine. Cheap phentermine. Phentermine. Purchase phentermine. Phentermine cheap. Buy phentermine online....more
제목 : Lorazepam.
Lorazepam. Lorazepam lorazapam cod....more
제목 : Clarinex sped dose.
Clarinex. Buy clarinex pills online clarinex for sale. What is clarinex-d....more
제목 : Ephedra.
Ephedra ban. Ephedra weight loss products....more
제목 : Cilostazol.
Cilostazol. Cilostazol medication....more
제목 : Adderall side effects.
Adderall xr side effects. Dextroamphetamine adderall comparison. Adderall....more
제목 : Buy sublingual levitra online.
Generic levitra. Levitra paypal. Viagra levitra viagra comparisons....more
제목 : Fexofenadine hcl.
Fexofenadine hcl. Pictures of fexofenadine hcl 60 mg. Fexofenadine....more
제목 : Butalbital medical license.
What is butalbital. Butalbital. Side effects of butalbital....more
제목 : Avandia and getting pregnant.
Avandia. Avandia drug_monograph....more
제목 : Percocet.
Identify percocet 93-490. Percocet. Adrenaline levels after percocet. Prescription meds percocet. Percocet for anxiety....more
제목 : Alprazolam cheap n.
Alprazolam online....more
제목 : Cialis.
Cialis american pharmacy. Viagra and cialis. Cialis....more
제목 : Carisoprodol mg.
Carisoprodol side effects. Effects of carisoprodol. Carisoprodol....more
제목 : Clarinex.
Clarinex. Is clarinex better. Effectiveness of clarinex. Clarinex syrup dosing....more
제목 : Pics of lortab 10 750.
Effects of lortab. Lortab withdrawal. Lortab for cheap. Lortab. Suspect lortab addiction. Hydrocodone lortab no prescription....more
제목 : Claritin d 24.
Drug enforcement agency claritin d....more
제목 : Carisoprodol phentermine yel..
Overnight carisoprodol. Effects of carisoprodol. Carisoprodol. Carisoprodol phentermine yellow....more
제목 : Lortab erowid.
Generic lortab xanax this....more
제목 : Fioricet message board.
Fioricet info pain medication prescription....more
제목 : Phentermine.
Phentermine. Mg buy phentermine. Phentermine online pharmacy....more
제목 : Dosing of amoxicillin for si..
Amoxicillin and saliva tests....more
제목 : Alprazolam.
Alprazolam. Cheap alprazolam. Alprazolam po box fedex overnight....more
제목 : Phentermine overnight.
Discount phentermine. Adipex phentermine vs. Phentermine. Order phentermine. Phentermine information....more
제목 : What is cipro used for.
How to dose cipro in dogs. Cipro pregnancy. Cipro xr 500mg. Cipro side effects. Cipro. Side effects cipro....more
제목 : Buy valium with mastercard.
Valium 5mg how long in system. Side effects of valium. Valium....more
제목 : Effects interactions drug lo..
Lorazepam siezure r. Side effects of lorazepam....more
제목 : Cheap 2mg alprazolam.
Alprazolam online. Alprazolam without prescription. Alprazolam. Overdose of alprazolam....more
제목 : Clavamox.
Clavamox powder. Clavamox for puppies. Nursing cats and clavamox. Clavamox. Clavamox cats....more
제목 : Hydrocodone.
Hydrocodone without a prescription. Hydrocodone. Hydrocodone allergy symptom. Hydrocodone no prescription....more
제목 : Cipro xr 500mg.
Side effects of cipro. Buy cipro. Cipro side effects long term. Cipro and valium interaction....more
제목 : What is the street price for..
Oxycontin drug abuse. Oxycontin. Purchasing oxycontin without a prescription. Make oxycontin. Can not stop oxycontin. Atlanta oxycontin lawyers....more
제목 : Codeine as antitussive.
Sell codeine. Tylenol 3 codeine. Tylenol with codeine. Codeine 3. Cheap codeine no prescription. Codeine. Pseudoephedrine with codeine cough syrup....more
제목 : Alprazolam.
Heroin mixed with alprazolam. Alprazolam dosage. Alprazolam online. Alprazolam no prescription. Purchase alprazolam. Alprazolam. Cheap 2mg alprazolam. Alprazolam er....more
제목 : Ezetimibe.
Ezetimibe. Ezetimibe and market introduction....more
제목 : Claritin-d 24 hr 30.
Buy claritin d 24. Claritin d. Claritin. Generic name for claritin....more
제목 : Diazepam valium and diarrhea.
Diazepam side effects. Diazepam side effect on cats. Diazepam valium and diarrhea. Diazepam usa. Diazepam....more
제목 : Can paxil make you hostile.
Can you take paxil and valerian together. Paxil withdrawal. Paxil weaning. Paxil withdrawal symptoms. Paxil....more
제목 : Evista consulting.
Evista. Evista medication....more
제목 : Carisoprodol toxicity.
Carisoprodol soma drug test. Carisoprodol. Carisoprodol phentermine yellow....more
제목 : Yellow adipex.
Adipex dangers. Adipex testimonials. Adipex overnight. Buy adipex....more
제목 : Percocet.
Percocet verses lortabs. Percocet high blood pressure....more
제목 : Hydrocodone side effects of ..
Worried sick about unborn baby due to hydrocodone....more
제목 : Doxycycline hyclate.
Doxycycline erythromycin tetracycline. Doxycycline for puppies. Doxycycline....more
제목 : Clavamox dosage.
Clavamox and pups. Yellow clavamox. Clavamox for canines. Clavamox. Clavamox side effects....more
제목 : Finasteride.
Side effects of propecia finasteride mg. Finasteride. Generic finasteride. Finasteride systemic mayoclinic com....more
제목 : Hydrocodone lortab no prescr..
Hydrocodone. Watson hydrocodone. Hydrocodone online. Buying hydrocodone without a prescription. Hydrocodone international pharmacies. Norco hydrocodone. Hydrocodone 1923. Hydrocodone drugs....more
제목 : Amoxicillin anti-inflammatory.
Amoxicillin. Amoxicillin blood sugar....more
제목 : Prescription weight loss med..
Ptsd and meridia. Meridia effectiveness. Meridia meridia best prices on the net. Meridia meridia. Meridia. Meridia diet index dietlist net. Meridia for sale....more
제목 : Codeine.
Tylenol codeine elixr. Codeine....more
제목 : Clarinex or allegra.
Allegra hicks fabric. Allegra d 240 mg. Allegra feed. Allegra. Allegra fusek. Allegra side effects. Allegra d....more
제목 : Alprazolam mside effects.
Alprazolam purchased by mastercard. Alprazolam tab. Alprazolam south america....more
제목 : Augmentin used for.
Augmentin 400 5. Augmentin....more
제목 : Ativan.
Adderal ativan. Ativan potentiates. Ativan....more
제목 : Hydrocodone apap5mg 500mg.
Hydrocodone. Buy hydrocodone without a prescription....more
제목 : Claritin allegra zyrtec.
Buy claritin d....more
제목 : Diazepam.
Diazepam....more
제목 : Ephedrine.
Diet ephedrine....more
제목 : Lortab 10mg 500.
Buy lortab. Lortab withdrawal. Buy lortab online....more
제목 : Citalopram side effects.
What is citalopram. Citalopram....more
제목 : Ativan xr.
No-prescription ativan. Can you give ativan to a dog....more
제목 : Lyrics to el-p oxycontin.
Oxycontin pdr. How is oxycontin made. Hartford oxycontin lawyers. Connecticut oxycontin lawyers. Atlanta oxycontin lawyers. Oxycontin for sale....more
제목 : Bupropion.
Bupropion hcl. Bupropion side effects. Bupropion. Bupropion sr. Bupropion and weight loss....more
제목 : Purchase cialis online.
Order cialis online. Online pharmacy buy cialis. Buy cialis. Taking viagra with cialis. Cialis....more
제목 : Bupropion pregnancy registry.
Bupropion. Release of bupropion hcl. Bupropion and stimulants....more
제목 : Wellbutrin.
Drug information wellbutrin. Wellbutrin in australia. Wellbutrin. Wellbutrin sr. Generic for wellbutrin....more
제목 : Citalopram side effects.
Citalopram wikipedia the free encyclopedia. Citalopram hydrobromide. Citalopram....more
제목 : Cheap soma.
Cheap soma watson. Cheap soma. Watson soma cheap....more
제목 : Phentermine diet pills.
Xenical hgh phentermine quit smoking. Phentermine. Phentermine pill. Phentermine no prescription. Cheapest phentermine. Online phentermine....more
제목 : Propecia.
About propecia. Propecia. Pill propecia. Reversing the effects of propecia. What are the side effects of propecia....more
제목 : Soma.
Soma addiction and lying. Soma sun pilates. Buy cheap soma. Buy soma. Soma. Best online pricing for soma....more
제목 : Buy phentermine online.
Phentermine prozac. Phentermine price. Phentermine. Purchase phentermine. Phentermine no prescription. Phentermine on line. Free phentermine. Online phentermine....more
제목 : Phentermine online.
Low cost phentermine. Buy phentermine. Phentermine without prescription. Phentermine. Phentermine capsule. Phentermine no prescription. Phentermine pharmacy. Phentermine for sale....more
제목 : Zoloft withdrawal.
Zoloft. Side effects of zoloft drug. Phentermine zoloft. Zoloft dosing. Zoloft side effects....more
제목 : Percocet 93-490 10 mg.
Percocet. Percocet dosages. Percocet side effects....more
제목 : Phentermine.
Phentermine. Buy phentermine online. Effects phentermine. Phentermine success story. Buy phentermine on line....more
제목 : Ephedra attorneys california.
Ephedra yellow swarm. Colorado ephedra attorney. Georgia ephedra lawyers. Ephedra....more
제목 : Buy soma online.
Soma soma buy soma soma online. Buy soma watson brand 180 tablets. Buy soma online. Buy soma watson brand online 150 tablets. Buy domain onlinevcvpl soma....more
제목 : Vicodin online no prescripti..
Offshore pharmacy vicodin no prescription. Vicodin without prescription. Pharmacy online no prescription vicodin. Lortab vicodin no prescription needed....more
제목 : Percocet online.
Percocet withdrawal symptoms. Long term use of percocet. Canadian prescriptions and percocet. Percocet. Compare darvocet to percocet....more
제목 : Hydrocodone consultations.
Hydrocodone apap. Hydrocodone. Elimination of hydrocodone in urine drug screens....more
제목 : Fioricet cheap.
Cheap fioricet and one day delivery. Fioricet cheap. Cheap fioricet....more
제목 : Affects of vicodin.
Vicodin....more
제목 : Viagra.
Free viagra....more
제목 : Buy vicodin.
Vicodin. Vicodin at overseas pharmacies. Snorting vicodin. Online vicodin. Vicodin withdrawal. Vicodin no rx....more
제목 : Hydrocodone.
How long does hydrocodone stay in urine. Hydrocodone. Hydrocodone apap5mg 500mg. Hydrocodone with no rx. Morphine stronger than hydrocodone....more
제목 : Buy ativan no prescription.
Buy ativan online. Buy ativan online order ativan online. Ativan -buy -buying -online -cheap. Buy ativan fed ex no prescription. Buy ativan online free usa dr consultation. Buy ativan....more
제목 : Soma online sales.
Soma best pharmacy online. Buy soma online. Soma buy soma cheap soma soma online. Cheap watson soma online....more
제목 : Percocet.
Percocet effects....more
제목 : Elavil side effects.
Elavil hcl image. Elavil....more
제목 : House fox vicodin.
Vicodin....more
제목 : Phentermine phentermine.
Phentermine online. No prescription phentermine. Buy phentermine. Phentermine. Phentermine no prescription. Phentermine on line....more
제목 : Tamiflu.
Getting tamiflu in 48 hours....more
제목 : Propecia online pharmacy.
Propecia uk medix plus forum. Propecia. Propecia specifications. Propecia price....more
제목 : Youtube aphex twin ventolin.
Ventolin. Ventolin hfa. Ventolin discount....more
제목 : Xanax.
Order xanax online. Buy xanax online. Xanax. No prescription xanax....more
제목 : Retin a.
Side effects for retin-a. Retin a to treat lip lines. Differin or retin a. Retin a liquid. Retin a. Retin a purpose. Roc retin-ol....more
제목 : Buy levitra.
Buy levitra. Canada in levitra....more
제목 : Soma no rx.
Soma bikes. Soma. Order soma. Discount soma. Soma carisoprodol. Soma drug. Drug soma....more
제목 : Buy cialis online.
Cialis no prescription. Cialis. Buy cheap cialis....more
제목 : Buy celebrex drugs.
Denver celebrex attorneys. Toradal with celebrex. Celebrex adverse side effects....more
제목 : Levitra experience.
Levitra heart probelms. Levitra. Discount levitra....more
제목 : Soma cannabis.
Soma next day delievery. Soma....more
제목 : Xanax for sale.
Xanax. Ativan xanax valuim trial pack....more
제목 : Cheap cialis.
Buy cialis online. Buy cialis. Cialis best price buy online. Generic cialis....more
제목 : Buy xanax.
Buy xanax. Buy xanax without prescription. Xanax usa. Xanax....more
제목 : Buy sublingual levitra online.
Levitra online consultation us overnight. Levitra users. Buy sublingual levitra online. Generic levitra. Levitra attorneys. Levitra testimonials. Discount levitra at online canadian drug store now. Levitra.com. Levitra....more
제목 : Amaryl side effects.
Amaryl. Amaryl drug interaction. Amaryl side effects....more
제목 : Side effect of neurontin rx.
Compounding neurontin liquid from capsules. Neurontin dosage. Neurontin....more
제목 : degree food and nutrition
dyFwRt0 | food origination ...more
제목 : Buy cheap xanax.
Buy xanax. Order xanax. Xanax....more
제목 : Cialis without prescription.
Cialis without prescription....more
제목 : Xanax online without prescri..
Xanax valium. Order xanax online. Xanax. Geniric xanax. Xanax cocktail. Xanax side effects. Xanax weight gain....more
제목 : Xanax.
Buy xanax. Xanax....more
제목 : Cialis canadian drugs.
Buy cialis in the uk. Cialis commercials. Cialis. Cialis alcohol. Discount cialis. Generic cialis....more
제목 : mexican mexico citizenship l..
LguIIt0 | straight guys going naked ...more
제목 : Buy percocet online no presc..
Where to safely buy percocet. Buy percocet....more