티스토리 뷰

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
- ChatGPT
- API
- strange
- github
- 체호프
- 영화
- 클린 애자일
- Echo
- middleware
- notion
- 인텔리제이
- golang
- clean agile
- solid
- 잡학툰
- 독서후기
- 오블완
- bun
- backend
- MCP
- gocore
- Gin
- 독서
- postgres
- intellij
- OpenAI
- 티스토리챌린지
- websocket
- go
- agile
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
글 보관함