이따금 Android code 에서 TEMP_FAILURE_RETRY mecro 를 사용한 function 들을 볼 수 있다.
하지만, 이 매크로는 매우 위험할 수 있다.
return true 가 발생하지 않는다면, 호출한 thread 는 영원히 loop 속으로 빠질 수 있다.
따라서 이 mecro 가 포함된 function 을 호출할때는 주의하는것이 좋다.
28#ifndef TEMP_FAILURE_RETRY 29/* Used to retry syscalls that can return EINTR. */ 30#define TEMP_FAILURE_RETRY(exp) ({ \ 31 typeof (exp) _rc; \ 32 do { \ 33 _rc = (exp); \ 34 } while (_rc == -1 && errno == EINTR); \ 35 _rc; }) 36#endif 37 38#ifdef __cplusplus 39extern "C" {
40#endif
'Programming > Linux_Platform' 카테고리의 다른 글
file open 시 fd 번호 부여 방식 (0) | 2016.09.01 |
---|---|
kill parent and child process sametime (0) | 2016.02.04 |
[linux] openat / open 의 차이점 (0) | 2015.10.29 |
Android init.rc 분석 (0) | 2015.10.26 |
fstab & partition images (0) | 2015.10.19 |