클로드 미친거 맞네요.
bool check_sleep_for(useconds_t delay_microseconds) {
while (delay_microseconds > 0) {
if (true == stop_sleep){
return true;
}
usleep(100*1000);
delay_microseconds = delay_microseconds - 100;
}
return false;
}이거 오류를 고치라고 하니까
변수명에 따라 코드를 바꿔버리네요.
#include <unistd.h>
#include <stdbool.h>
extern volatile bool stop_sleep;
bool check_sleep_for(useconds_t delay_microseconds) {
const useconds_t sleep_interval = 100000; // 100ms in microseconds
while (delay_microseconds > 0) {
if (stop_sleep) {
return true;
}
useconds_t sleep_time = (delay_microseconds < sleep_interval) ? delay_microseconds : sleep_interval;
usleep(sleep_time);
if (delay_microseconds < sleep_interval) {
break;
}
delay_microseconds -= sleep_interval;
}
return false;
}bool check_sleep_for(useconds_t delay_milliseconds) {
while (delay_milliseconds > 0) {
if (true == stop_sleep){
return true;
}
usleep(100*1000);
delay_milliseconds = delay_milliseconds - 100;
}
return false;
}변수명을 밀리세컨드로 바꾸니까
useconds_t 는 마이크로세컨드용이라고 unsigned int 로 타입을 바꿔버리네요. ;;;;
그리고 코멘트는 어쩔 ;;;;
왠만한 사람보다 낫네 ;;;;
#include <unistd.h>
#include <stdbool.h>
extern volatile bool stop_sleep;
bool check_sleep_for(unsigned int delay_milliseconds) {
const unsigned int sleep_interval = 100; // 100ms
while (delay_milliseconds > 0) {
if (stop_sleep) {
return true;
}
unsigned int sleep_time = (delay_milliseconds < sleep_interval) ? delay_milliseconds : sleep_interval;
usleep(sleep_time * 1000); // Convert milliseconds to microseconds
if (delay_milliseconds < sleep_interval) {
break;
}
delay_milliseconds -= sleep_interval;
}
return false;
}