본문 바로가기

Programming/Linux_Platform

TEMP_FAILURE_RETRY

이따금 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