티스토리 뷰
Photo by K15 Photos on Unsplash
쓰레드를 생성하는 pthread_create()의 함수 시그니처는 아래와 같다.
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
그런데 빌드시에 파라미터로 들어가는 start_routine() 함수에서 warning이 뜬다.
분명 리턴값이 void 인데 왜 warning이 뜰까?
warning: Control reaches end of non-void function [-Wreturn-type]
별거 아니다. 쓰레드 함수의 리턴값은 아래와 같이 해주어야 한다.
pthread_exit(NULL);
참고 한 stack overflow 링크와 코드를 아래에 덧붙인다.
stack overflow: https://stackoverflow.com/a/20031237/3382699
typedef struct thread_data {
int a;
int b;
int result;
} thread_data;
void *myThread(void *arg)
{
thread_data *tdata=(thread_data *)arg;
int a=tdata->a;
int b=tdata->b;
int result=a+b;
tdata->result=result;
pthread_exit(NULL);
}
int main()
{
pthread_t tid;
thread_data tdata;
tdata.a=10;
tdata.b=32;
pthread_create(&tid, NULL, myThread, (void *)&tdata);
pthread_join(tid, NULL);
printf("%d + %d = %d\n", tdata.a, tdata.b, tdata.result);
return 0;
}
반응형
'development' 카테고리의 다른 글
마인크래프트 Pocket Edition Server on Oracle Cloud (2) | 2021.12.27 |
---|---|
Google Sheets - 일정 간격의 값들을 가져와 자동으로 채우기 (1) | 2021.09.30 |
Makefile - .PHONY는 어떤 용도로 쓰일까? (0) | 2021.08.05 |
Hyrum's Law (2) | 2021.05.27 |
LeetCode 문제풀이는 실무에 도움이 되는가? (3) | 2021.04.28 |
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- go
- postgres
- 영화
- 클린 애자일
- github
- Gin
- agile
- 독서후기
- pool
- API
- 체호프
- bun
- websocket
- Shortcut
- 2023
- solid
- intellij
- ChatGPT
- golang
- 노션
- 인텔리제이
- 독서
- Bug
- 잡학툰
- JIRA
- OpenAI
- folklore
- 제이펍
- notion
- strange
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함